Freigeben über


With...End With-Anweisung (Visual Basic)

führt eine Reihe von Anweisungen aus, das wiederholt ein einzelnes Objekt oder eine Struktur bezieht.

With object
    [ statements ]
End With

Teile

Begriff

Definition

expression

Erforderlich.Ein Ausdruck, der zu einem - Objekt ausgewertet.Der Ausdruck kann willkürlich komplex und wird nur einmal ausgewertet.Der Ausdruck kann jeden Datentyp, einschließlich grundlegende Typen auswerten.

statements

Dies ist optional.Eine oder mehrere Anweisungen zwischen With und End With, die möglicherweise Member eines Objekts zu, das durch die Auswertung von expression erzeugt wird.

End With

Erforderlich.Beendet die Definition des With-Blocks.

Hinweise

Mit With...End With verwenden, können Sie eine Reihe von Anweisungen auf einem angegebenen Objekt ausführen, ohne den Namen des Objekts mehrmals angegeben werden.Innerhalb eines Anweisungsblocks With können Sie einen Member des Objekts angeben beginnend mit einem Punkt, als ob das With-Anweisungsobjekt ihm vorausging.

Um beispielsweise mehrere Eigenschaften für ein einzelnes Objekt zu ändern, legen Sie die Eigenschaftzuweisungsanweisungen innerhalb des Blocks With...End With und das Objekt statt einmal verweisen nur einmal für jede Eigenschaftenzuweisung.

Wenn der Code auf dasselbe Objekt in mehreren Anweisungen zugreift, erhalten Sie die folgenden Vorteile, indem Sie die With-Anweisung verwenden:

  • Sie müssen nicht, um einen komplexen Ausdruck mehrmals auszuwerten oder das Ergebnis zu einer temporären Variablen zuzuweisen, um deren Member mehrmals zuzugreifen.

  • Sie führen den Code besser lesbar, indem Sie wiederkehrende qualifizierenden Ausdrücke ausschließen.

Der Datentyp von expression kann eine Klassen- oder Strukturtyp oder sogar ein einfacher Typ des Visual Basic wie Integer sein.

expression wird einmal, nach Eintrag in den Block ausgewertet.Sie können expression nicht aus dem With-Block neu zuweisen.

Innerhalb eines With-Blocks können Sie die Methoden und die Eigenschaften nur des angegebenen Objekts zugreifen, ohne sie zu qualifizieren.Sie können zwar auch Methoden und Eigenschaften anderer Objekte verwenden, diese müssen Sie jedoch mit dem Objektnamen qualifizieren.

Sie können eine With...End With-Anweisung innerhalb einer anderen platzieren.Geschachtelte With...End With-Anweisungen sind verwirrend, wenn die Objekte, auf die verwiesen wird, nicht vom Kontext klar sind.Sie müssen einen vollqualifizierten Verweis auf ein Objekt bereitstellen, das in einem äußeren With-Block ist, wenn das - Objekt aus einem inneren With-Block verwiesen wird.

Sie können nicht in With einen Anweisungsblock verzweigen von außerhalb des Blocks.

Es sei denn, der Block eine Schleife enthält, werden die Anweisungen nur einmal ausgeführt.Sie können verschiedene Arten von Steuerungsstrukturen schachteln.Weitere Informationen finden Sie unter Geschachtelte Steuerungsstrukturen (Visual Basic).

HinweisHinweis

Sie können das With-Schlüsselwort in den Objektinitialisierer auch verwenden.Weitere Informationen und Beispiele finden Sie unter Objektinitialisierer: Benannte und anonyme Typen (Visual Basic) und Anonyme Typen (Visual Basic).

Wenn Sie einen With-Block verwenden, um die Eigenschaften oder Felder eines Objekts nur zu initialisieren, das Sie gerade instanziiert haben, sollten Sie einen Objektinitialisierer, stattdessen zu verwenden.

Beispiel

Im folgenden Beispiel wird jeder With-Block von Anweisungen in einem einzelnen Objekt.

Private Sub AddCustomer()
    Dim theCustomer As New Customer

    With theCustomer
        .Name = "Coho Vineyard"
        .URL = "http://www.cohovineyard.com/"
        .City = "Redmond"
    End With

    With theCustomer.Comments
        .Add("First comment.")
        .Add("Second comment.")
    End With
End Sub

Public Class Customer
    Public Property Name As String
    Public Property City As String
    Public Property URL As String

    Public Property Comments As New List(Of String)
End Class

Im folgenden Beispiel With…End With schachtelt Anweisungen.In der geschachtelten With-Anweisung verweist auf die Syntax das innere Objekt an.

Dim theWindow As New EntryWindow

With theWindow
    With .InfoLabel
        .Content = "This is a message."
        .Foreground = Brushes.DarkSeaGreen
        .Background = Brushes.LightYellow
    End With

    .Title = "The Form Title"
    .Show()
End With

Siehe auch

Referenz

List<T>

Konzepte

Geschachtelte Steuerungsstrukturen (Visual Basic)

Objektinitialisierer: Benannte und anonyme Typen (Visual Basic)

Anonyme Typen (Visual Basic)