如何:使用对象初始值设定项声明对象 (Visual Basic)

通过对象初始值设定项,可在单个语句中声明和实例化类的实例。 此外,可同时初始化实例的一个或多个成员,而无需调用参数化构造函数。

使用对象初始值设定项创建命名类型的实例时,调用类的无参数构造函数,然后按指定的顺序初始化指定的成员。

以下过程演示如何以三种不同的方式创建 Student 类的实例。 该类具有名字、姓氏和年级等属性。 这三个声明中的每一个都创建了一个新的 Student 实例,其中属性 First 设置为“Michael”,属性 Last 设置为“Tucker”,所有其他成员都设置为其默认值。 过程中每个声明的结果等效于以下示例,该示例不使用对象初始值设定项。

Dim student0 As New Student
With student0
    .First = "Michael"
    .Last = "Tucker"
End With

有关 Student 类的实现,请参阅如何:创建项目列表。 可从该主题复制代码以设置类并创建要使用的 Student 对象列表。

使用对象初始值设定项创建命名类的对象

  1. 开始声明,就像你计划使用构造函数一样。

    Dim student1 As New Student

  2. 键入关键字 With,后跟一个用大括号括起来的初始化列表。

    Dim student1 As New Student With { <initialization list> }

  3. 在初始化列表中,包括要初始化的每个属性,并为其分配初始值。 属性的名称前面有一个句点。

    Dim student1 As New Student With {.First = "Michael", 
                                      .Last = "Tucker"}
    

    可初始化该类的一个或多个成员。

  4. 或者,可声明该类的新实例,然后为其分配值。 首先,声明一个 Student 的实例:

    Dim student2 As Student

  5. 以正常的方式开始创建 Student 的实例。

    Dim student2 As Student = New Student

  6. 键入 With,然后键入对象初始值设定项以初始化新实例的一个或多个成员。

    Dim student2 As Student = New Student With {.First = "Michael", 
                                                .Last = "Tucker"}
    
  7. 可通过省略 As Student 来简化上一步中的定义。 如果这样做,编译器会使用本地类型推断来确定 student3Student 的实例。

    Dim student3 = New Student With {.First = "Michael", 
                                     .Last = "Tucker"}
    

    有关详细信息,请参阅本地类型推断

另请参阅