Gewusst wie: 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 mehrere Member der Instanz gleichzeitig initialisieren, ohne einen parametrisierten Konstruktor aufrufen zu müssen.

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

Die folgende Prozedur zeigt drei verschiedene Arten zum Erstellen einer Instanz einer Student-Klasse. Die Klasse verfügt unter anderem über Eigenschaften für Vorname, Nachname und Klassenjahr. Jede der drei Deklarationen erstellt eine neue Instanz von Student, wobei die First-Eigenschaft auf „Michael“ festgelegt ist, die Last-Eigenschaft auf „Tucker“ und alle anderen Elemente auf ihre Standardwerte. 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 Erstellen einer Liste von Elementen. 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 Objektinitialisierers

  1. Beginnen Sie die Deklaration, als würden Sie planen, einen Konstruktor zu verwenden.

    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. Fügen Sie in die Initialisierungsliste jede Eigenschaft ein, die Sie initialisieren möchten, und weisen Sie ihr 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 ihr dann einen Wert zuweisen. Deklarieren Sie zuerst eine Instanz von Student:

    Dim student2 As Student

  5. Beginnen Sie mit der Erstellung einer Instanz von Student auf normale Weise.

    Dim student2 As Student = New Student

  6. Geben Sie With und anschließend einen Objektinitialisierer ein, um Member 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 As Student weglassen. In diesem Fall legt der Compiler mithilfe eines lokalen Typrückschlusses fest, dass es sich bei student3 um eine Instanz von Student handelt.

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

    Weitere Informationen finden Sie unter Lokaler Typrückschluss.

Siehe auch