Freigeben über


Vorgehensweise: Deklarieren eines Objekts mithilfe eines Objektinitialisierers (Visual Basic)

Mit Objektinitialisierern können Sie eine Instanz einer Klasse in einer einzelnen Anweisung deklarieren und instanziieren. Darüber hinaus können Sie ein oder mehrere Member der Instanz gleichzeitig initialisieren, ohne einen parametrisierten Konstruktor aufrufen zu müssen.

Wenn Sie einen Objektinitialisierer verwenden, um eine Instanz eines benannten Typs zu erstellen, wird der parameterlose Konstruktor für die Klasse aufgerufen, gefolgt von der Initialisierung der angegebenen Member in der von Ihnen angegebenen Reihenfolge.

Das folgende Verfahren zeigt, wie Sie eine Instanz einer Student Klasse auf drei verschiedene Arten erstellen. Die Klasse verfügt unter anderem über die Attribute Vorname, Nachname und Klassenjahr. Jede der drei Deklarationen erstellt eine neue Instanz von Student, wobei die Eigenschaft First auf "Michael" festgelegt ist, die Eigenschaft Last auf "Tucker" festgelegt ist und alle anderen Elemente auf ihre Standardwerte festgelegt sind. Das Ergebnis jeder Deklaration in der Prozedur entspricht dem folgenden Beispiel, das keinen Objektinitialisierer verwendet.

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

Eine Implementierung der Student Klasse finden Sie unter How to: Create a List of Items. Sie können den Code aus diesem Thema kopieren, um die Klasse einzurichten und eine Liste von Student Objekten zu erstellen, mit denen Sie arbeiten können.

So erstellen Sie ein Objekt einer benannten Klasse mithilfe eines Objektinitialisierungsprogramms

  1. Beginnen Sie die Deklaration so, als ob Sie einen Konstruktor verwenden möchten.

    Dim student1 As New Student

  2. Geben Sie die Schlüsselwort With ein, gefolgt von einer Initialisierungsliste in geschweiften Klammern.

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

  3. Schließen Sie in der Initialisierungsliste jede Eigenschaft ein, die Sie initialisieren möchten, und weisen Sie ihm einen Anfangswert zu. Dem Namen der Eigenschaft wird ein Punkt vorangestellt.

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

    Sie können ein oder mehrere Member der Klasse initialisieren.

  4. Alternativ können Sie eine neue Instanz der Klasse deklarieren und ihm dann einen Wert zuweisen. Deklarieren Sie zunächst eine Instanz von Student:

    Dim student2 As Student

  5. Beginnen Sie die Erstellung einer Instanz Student auf normale Weise.

    Dim student2 As Student = New Student

  6. Geben Sie With ein, gefolgt von einem Objektinitialisierer, um ein oder mehrere Mitglieder der neuen Instanz zu initialisieren.

    Dim student2 As Student = New Student With {.First = "Michael", 
                                                .Last = "Tucker"}
    
  7. Sie können die Definition im vorherigen Schritt vereinfachen, indem Sie weglassen As Student. Wenn Sie dies tun, bestimmt der Compiler mithilfe des lokalen Typinferenz, dass student3 eine Instanz von Student ist.

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

    Weitere Informationen finden Sie unter „Lokale Typinferenz“.

Siehe auch