New 运算符 (Visual Basic)
引入 New
子句以新建对象实例,指定类型参数的构造函数约束,或将 Sub
过程标识为类构造函数。
注解
在声明或赋值语句中,New
子句必须指定可从中创建实例的定义类。 这意味着该类必须公开一个或多个调用代码可访问的构造函数。
你可以在声明语句或赋值语句中使用 New
子句。 语句运行时,它调用指定的类的相应构造函数,并传递提供的任何参数。 以下示例对此进行了演示,其中创建了具有两个构造函数(一个构造函数不带参数,另一个带字符串参数)的 Customer
类的实例:
' For customer1, call the constructor that takes no arguments.
Dim customer1 As New Customer()
' For customer2, call the constructor that takes the name of the
' customer as an argument.
Dim customer2 As New Customer("Blue Yonder Airlines")
' For customer3, declare an instance of Customer in the first line
' and instantiate it in the second.
Dim customer3 As Customer
customer3 = New Customer()
' With Option Infer set to On, the following declaration declares
' and instantiates a new instance of Customer.
Dim customer4 = New Customer("Coho Winery")
由于数组是类,New
可以新建数组实例,如下例所示:
Dim intArray1() As Integer
intArray1 = New Integer() {1, 2, 3, 4}
Dim intArray2() As Integer = {5, 6}
' The following example requires that Option Infer be set to On.
Dim intArray3() = New Integer() {6, 7, 8}
如果内存不足,无法新建实例,公共语言运行时 (CLR) 将引发 OutOfMemoryException 错误。
注意
New
关键字还用于类型参数列表,以指定提供的类型必须公开可访问的无参数构造函数。 有关类型参数和约束的详细信息,请参阅类型列表。
若要为类创建构造函数过程,请将 Sub
过程的名称设置为 New
关键字。 有关详细信息,请参阅对象生存期:如何创建和销毁对象。
New
关键字可用于以下上下文中: