如何:使用对象初始值设定项声明对象

更新: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(视频帮助:使用对象初始值设定项声明对象)。

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

  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 以简化上一步中的定义。如果这样做,编译器将使用局部类型推理来确定 student3 是 Student 的实例。

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

    有关更多信息,请参见局部类型推理

请参见

任务

如何:创建项列表

如何:声明匿名类型的实例

概念

局部类型推理

对象初始值设定项:命名类型和匿名类型

命名类型和匿名类型之比较