如何:使用对象初始值设定项声明对象
更新:2007 年 11 月
使用对象初始值设定项可以在单个语句中声明并实例化类的实例。此外,还可以同时初始化该实例的一个或多个成员,而无需调用参数化构造函数。
使用对象初始值设定项创建命名类型的实例时,将调用类的默认构造函数,然后按指定顺序初始化指定的成员。
下面的过程演示如何以三种不同方式创建 Student 类的实例。该类具有名字、姓氏和年级等属性。三个声明各自创建 Student 的一个新实例,并且将属性 First 设置为“Michael”,将属性 Last 设置为“Tucker”,将所有其他成员设置为各自的默认值。过程中每个声明的结果等效于下面的示例,该示例未使用对象初始值设定项。
Dim student0 As New Student
With student0
.First = "Michael"
.Last = "Tucker"
End With
有关 Student 类的实现,请参见如何:创建项列表。您可以从该主题中复制代码来设置类以及创建要使用的 Student 对象列表。
有关视频演示,请参见 Video How to: Declare an Object by Using an Object Initializer(视频帮助:使用对象初始值设定项声明对象)。
使用对象初始值设定项创建命名类的对象
就像您计划使用构造函数一样开始声明。
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"}
有关更多信息,请参见局部类型推理。