通过对象初始值设定项,可以在单个语句中声明和实例化类的实例。 此外,还可以同时初始化实例的一个或多个成员,而无需调用参数化构造函数。
使用对象初始值设定项创建命名类型的实例时,将调用类的无参数构造函数,然后按照指定的顺序初始化指定成员。
以下过程演示如何以三种不同的方式创建类的 Student 实例。 该类具有名字、姓氏和年级等属性。 这三个声明中的每个声明都会创建一个新实例 Student,其中属性 First 设置为“Michael”,属性 Last 设置为“Tucker”,所有其他成员都设置为其默认值。 过程中每个声明的结果等效于以下示例,该示例不使用对象初始值设定项。
Dim student0 As New Student
With student0
.First = "Michael"
.Last = "Tucker"
End With
有关 Student 类的实现,请参阅 如何:创建项列表。 可以从该主题复制代码以设置类并创建要使用的对象列表 Student 。
使用对象初始化创建具有名称的类的对象
开始声明,就像你计划使用构造函数一样。
Dim student1 As New Student
键入关键字 With,后跟一个用大括号括起来的初始化列表。
Dim student1 As New Student With {
在初始化列表中,包括要初始化的每个属性,并为其分配初始值。 属性的名称前面有一个句点。
Dim student1 As New Student With {.First = "Michael",
.Last = "Tucker"}
可初始化该类的一个或多个成员。
或者,可以声明类的新实例,然后为其赋值。 首先,声明 Student 实例。
Dim student2 As Student
开始以正常方式创建实例 Student 。
Dim student2 As Student = New Student
键入 With,然后键入对象初始值设定项以初始化新实例的一个或多个成员。
Dim student2 As Student = New Student With {.First = "Michael",
.Last = "Tucker"}
可以通过省 As Student略来简化上一步中的定义。 如果进行此操作,编译器确定 student3 是使用本地类型推理确定的 Student 实例。
Dim student3 = New Student With {.First = "Michael",
.Last = "Tucker"}
有关详细信息,请参阅 本地类型推理。
另请参阅
本地类型推理
如何:创建项目列表
对象初始值设定项:命名类型和匿名类型
匿名类型