次の方法で共有


方法: オブジェクト初期化子を使用してオブジェクトを宣言する (Visual Basic)

オブジェクト初期化子を使用すると、1 つのステートメントでクラスのインスタンスを宣言してインスタンス化できます。 さらに、パラメーター化されたコンストラクターを呼び出さずに、インスタンスの 1 つ以上のメンバーを同時に初期化できます。

オブジェクト初期化子を使用して名前付き型のインスタンスを作成すると、クラスのパラメーターなしのコンストラクターが呼び出され、指定した順序で指定されたメンバーが初期化されます。

次の手順では、 Student クラスのインスタンスを 3 つの異なる方法で作成する方法を示します。 クラスには、名、姓、クラスの年プロパティなどがあります。 3 つの宣言のそれぞれで、 Studentの新しいインスタンスが作成され、プロパティ First が "Michael" に設定され、プロパティ Last "タッカー" に設定され、他のすべてのメンバーが既定値に設定されます。 プロシージャ内の各宣言の結果は、オブジェクト初期化子を使用しない次の例と同じです。

Dim student0 As New Student
With student0
    .First = "Michael"
    .Last = "Tucker"
End With

Student クラスの実装については、「方法: 項目のリストを作成する」を参照してください。 そのトピックのコードをコピーしてクラスを設定し、操作する Student オブジェクトの一覧を作成できます。

オブジェクト初期化子を使用して名前付きクラスのオブジェクトを作成するには

  1. コンストラクターの使用を計画したかのように宣言を開始します。

    Dim student1 As New Student

  2. キーワード Withを入力し、その後に中かっこで囲む初期化リストを入力します。

    Dim student1 As New Student With { <initialization list> }

  3. 初期化リストに、初期化する各プロパティを含め、初期値を割り当てます。 プロパティの名前の前にピリオドが付けられます。

    Dim student1 As New Student With {.First = "Michael", 
                                      .Last = "Tucker"}
    

    クラスの 1 つ以上のメンバーを初期化できます。

  4. または、クラスの新しいインスタンスを宣言し、それに値を割り当てることができます。 まず、 Studentのインスタンスを宣言します。

    Dim student2 As Student

  5. 通常の方法で Student のインスタンスの作成を開始します。

    Dim student2 As Student = New Student

  6. With入力し、オブジェクト初期化子を入力して、新しいインスタンスの 1 つ以上のメンバーを初期化します。

    Dim student2 As Student = New Student With {.First = "Michael", 
                                                .Last = "Tucker"}
    
  7. 前の手順で定義を簡略化するには、 As Studentを省略します。 これを行うと、コンパイラは、 student3 がローカル型推論を使用して Student のインスタンスであると判断します。

    Dim student3 = New Student With {.First = "Michael", 
                                     .Last = "Tucker"}
    

    詳細については、「 ローカル型の推論」を参照してください。

こちらも参照ください