New 演算子 (Visual Basic)
New 句を開始して新しいオブジェクト インスタンスを作成するか、型パラメーターにコンストラクター制約を指定するか、または Sub プロシージャをクラス コンストラクターとして識別します。
解説
代入ステートメントの宣言で、New 句は、インスタンスを作成する定義済みのクラスを指定する必要があります。つまり、クラスは呼び出し元のコードがアクセスできる 1 つ以上のコンストラクターを公開する必要があります。
New 句は、宣言ステートメントまたは代入ステートメントの中で使用できます。ステートメントが実行されると、指定したクラスの適切なコンストラクターが呼び出されて、指定した引数が渡されます。次に例を示します。この例では、2 つのコントラクターを持つ 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 キーワードは、アクセス可能なパラメーターなしのコンストラクターを渡された型が公開する必要があることを示すために、型パラメーター リストでも使用されます。型パラメーターと制約の詳細については、「型リスト (Visual Basic)」を参照してください。
クラスのコンストラクターのプロシージャを作成するには、Sub プロシージャの名前を New キーワードにします。詳細については、「オブジェクトの有効期間: オブジェクトの作成と破棄 (Visual Basic)」を参照してください。
キーワード New は、次の構文で使用します。
参照
関連項目
概念
Visual Basic におけるジェネリック型 (Visual Basic)
オブジェクトの有効期間: オブジェクトの作成と破棄 (Visual Basic)