如何:声明匿名类型的实例 (Visual Basic)
匿名类型使您无需为数据类型编写类定义即可创建对象。 此时编译器将为您创建类。 因为未指定数据类型的名称,所以该类型称为“匿名类型”。
通过使用初始值设定项列表来指定类型的属性,可以声明匿名类型的实例。 您需要提供实例的名称、每个属性的名称以及每个属性的初始值,并指示每个属性是否为键属性。
声明
声明匿名类型的实例
不带 As 子句开始一个 Dim 语句。
Dim instanceName
在该语句中,将该类型的属性列表(该列表需要括在大括号内,并且需要在前面加上关键字 New With)赋给 instanceName。
Dim instanceName = New With {<property names and initial values>}
以句点开始每个新的属性名称,并为其分配初始值。 如果希望属性成为键属性,则在属性名称前面加上关键字 Key。 (有关更多信息,请参见 Key (Visual Basic)。)使用逗号分隔各个属性。 请注意,不能直接指定属性的数据类型。 类型根据初始值推断得到。
Dim instanceName = New With {Key .Rank = 8, Key .Title = "Comptroller", .Location = "headquarters"}
声明完成。 您可以像访问任何对象的属性一样访问 instanceName 的属性,区别在于无法更改键属性的值。
instanceName.Location = "conference" Console.WriteLine(instanceName.Title) ' The following statement does not compile, because Rank is ' a key property and cannot be changed. ' instanceName.Rank = 9
有关声明匿名类型属性的其他方式的信息,请参见如何:推断匿名类型声明中的属性名和类型 (Visual Basic)。
可靠编程
如果要创建临时对象来包含相关数据,或者希望对每个声明选择不同的属性,则匿名类型是一个不错的选择。
匿名类型的使用存在一些限制。 最重要的是,匿名类型的名称不可用,不能出现在代码中需要使用类型名称的位置。 有关如何使用匿名类型编程的更多信息,请参见匿名类型 (Visual Basic)。
请参见
任务
如何:推断匿名类型声明中的属性名和类型 (Visual Basic)