通过对象初始值设定项,可以在单个语句中声明和实例化类的实例。 此外,还可以同时初始化实例的一个或多个成员,而无需调用参数化构造函数。
使用对象初始值设定项创建命名类型的实例时,将调用类的无参数构造函数,然后按照指定的顺序初始化指定成员。
以下过程演示如何以三种不同的方式创建类的 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 { <initialization list> }
在初始化列表中,包括要初始化的每个属性,并为其分配初始值。 属性的名称前面有一个句点。
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"}
有关详细信息,请参阅 本地类型推理。