New 演算子 (Visual Basic)

新しいオブジェクト インスタンスを作成するための New 句の導入、型パラメーターでのコンストラクター制約の指定、またはクラス コンストラクターとして Sub プロシージャの指定を行います。

Remarks

宣言または代入ステートメントで、New 句によって、インスタンスの作成元として使用できる定義済みのクラスを指定する必要があります。 つまり、このクラスによって、呼び出し元のコードがアクセスできる 1 つ以上のコンストラクターが公開されなければなりません。

New 句は、宣言ステートメントまたは代入ステートメントで使用できます。 このステートメントが実行されると、指定したクラスの適切なコンストラクターが呼び出され、指定した引数が渡されます。 これを示す例を次に紹介します。2 つのコンストラクターがある Customer クラスのインスタンスを作成し、コンストラクターの 1 つはパラメーターを受け取らず、もう 1 つは文字列パラメーターを受け取ります。

' 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 は次のコンテキストで使用できます。

関連項目