方法: オブジェクト初期化子を使用してオブジェクトを宣言する (Visual Basic)
オブジェクト初期化子を使用すると、1 つのステートメントで、クラスのインスタンスを宣言してインスタンス化できます。 また、パラメーター化されたコンストラクターを呼び出さずに、インスタンスの 1 つ以上のメンバーを同時に初期化できます。
オブジェクト初期化子を使用して、名前付きの型のインスタンスを作成すると、クラスのパラメーターなしのコンストラクターが呼び出され、続いて指定した順番で、指定したメンバーの初期化が行われます。
次の手順は、3 つの異なる方法で Student
クラスのインスタンスを作成する方法を示しています。 クラスには特に姓、名、および学年のプロパティがあります。 3 つの各宣言では、プロパティ First
を "Michael" に設定し、プロパティ Last
を "Tucker" に設定し、その他のすべてのメンバーをそれらの既定値に設定して、Student
の新しいインスタンスを作成しています。 プロシージャ内の各宣言の結果は、オブジェクト初期化子を使用しない次の例と同じです。
Dim student0 As New Student
With student0
.First = "Michael"
.Last = "Tucker"
End With
Student
クラスの実装については、「方法:項目のリストを作成する」を参照してください。 そのトピックからコードをコピーして、クラスを設定し、操作する Student
オブジェクトの一覧を作成できます。
オブジェクト初期化子を使用して、名前付きクラスのオブジェクトを作成するには
コンストラクターを使用することを計画した場合と同様に、宣言を開始します。
Dim student1 As New Student
キーワード
With
の後に中かっこで囲んだ初期化リストを含めて入力します。Dim student1 As New Student With { <initialization list> }
初期化リストに、初期化して、それに初期値を代入する各プロパティを含めます。 プロパティの名前の前にピリオドを付けます。
Dim student1 As New Student With {.First = "Michael", .Last = "Tucker"}
クラスの 1 つ以上のメンバーを初期化できます。
または、クラスの新しいインスタンスを宣言してから、それに値を代入することもできます。 まず、
Student
のインスタンスを宣言します。Dim student2 As Student
通常の方法で
Student
のインスタンスの作成を開始します。Dim student2 As Student = New Student
With
に続けてオブジェクト初期化子を入力して、新しいインスタンスの 1 つ以上のメンバーを初期化します。Dim student2 As Student = New Student With {.First = "Michael", .Last = "Tucker"}
As Student
を省略すると、前のステップの定義を簡略化できます。 これを行うと、コンパイラによって、ローカル型推論を使用して、student3
がStudent
のインスタンスであると判断されます。Dim student3 = New Student With {.First = "Michael", .Last = "Tucker"}
詳細については、「ローカル型の推論」を参照してください。
関連項目
.NET