With...End With-Anweisung (Visual Basic)
Führt eine Reihe von Anweisungen aus und verweist mehrfach auf ein einzelnes Objekt oder eine einzelne Struktur.
With object
[ statements ]
End With
Bestandteile
Ausdruck |
Definition |
object |
Erforderlich. Variable oder Ausdruck. Kann einen beliebigen Datentyp ergeben, u. a. auch einen elementaren Datentyp. |
statements |
Optional. Eine oder mehrere Anweisungen zwischen With und End With, die für object ausgeführt werden. |
End With |
Erforderlich. Beendet die Definition des With-Blocks. |
Hinweise
Mit With...End With können Sie eine Reihe von Anweisungen für ein bestimmtes Objekt ausführen, ohne den Namen des Objekts immer wieder neu angeben zu müssen. Wenn der Qualifizierungspfad für das Objekt lang ist, kann durch die Verwendung von With...End With die Leistung verbessert werden. Mit einem With-Block wird außerdem die Anzahl wiederholter Eingaben des Qualifizierungspfads und das Risiko einer falschen Schreibweise eines seiner Elemente verringert.
Wenn Sie beispielsweise mehrere verschiedene Eigenschaften eines einzelnen Objekts ändern möchten, fügen Sie die Anweisungen für die Eigenschaftenzuweisungen in die With...End With-Anweisung ein. Sie müssen dann nicht in jeder Eigenschaftenzuweisung auf das Objekt verweisen, sondern es genügt ein einziger Verweis auf das Objekt.
Regeln
Datentypen. Der Datentyp object kann ein beliebiger Klassen- oder Strukturtyp und sogar ein elementarer Visual Basic-Typ, z. B. Integer, sein. .NET Framework unterstützt alle elementaren Typen für Klassen oder Strukturen, die über Member verfügen, auf die in einem With-Block zugegriffen werden kann.
Deklaration. Sie müssen object deklarieren, bevor Sie den With-Block eingeben. Die Deklaration kann nicht in der With-Anweisung erfolgen.
Anzahl von Iterationen. Ein With-Block ist keine iterative Konstruktion. Sofern der Block keine Schleife enthält, werden die Anweisungen nur einmal ausgeführt.
Schachteln von Strukturen. Sie können With...End With-Strukturen schachteln, indem Sie eine Struktur in eine andere einfügen. Ein Beispiel finden Sie unter Gewusst wie: Ausführen von mehreren Aktionen für ein Objekt (Visual Basic).
Da die Member der äußeren Anweisungen in den inneren Anweisungen verdeckt sind, müssen Sie für alle Member eines Objekts in einem äußeren With-Block einen vollqualifizierten Objektverweis in einem inneren With-Block angeben.
Sie können auch unterschiedliche Arten von Steuerungsstrukturen in einer anderen Steuerungsstruktur schachteln. Weitere Informationen finden Sie unter Geschachtelte Steuerungsstrukturen (Visual Basic).
Übertragung aus der Struktur. Visual Basic unterstützt nicht die Exit-Anweisung (Visual Basic) zum Übergeben der Steuerung aus einem With-Block. Wenn das Programm beendet werden soll, bevor alle Anweisungen ausgeführt wurden, verwenden Sie eine Zeilenmarke für eine End With-Anweisung, und verzweigen Sie darauf mit der GoTo-Anweisung. Weitere Informationen finden Sie unter Gewusst wie: Label-Anweisungen (Visual Basic).
Die Steuerung kann nicht von außerhalb eines With-Blocks in diesen oder aus dem Block nach außen übertragen werden. Sie können im Block eine Prozedur aufrufen, doch die Steuerung wird an die nächste Anweisung übergeben.
Zugreifen auf andere Objekte. Wenn Sie einen With-Block ausführen, können Sie object erst dann erneut zuweisen, wenn die End With-Anweisung übergeben wurde. Das bedeutet, dass Sie nur auf die Methoden und Eigenschaften des angegebenen Objekts zugreifen können, ohne sie zu kennzeichnen. Sie können zwar auch Methoden und Eigenschaften anderer Objekte verwenden, diese müssen Sie jedoch mit dem Objektnamen qualifizieren.
Beispiel
Im folgenden Beispiel wird ein With-Block verwendet, um eine Reihe von Anweisungen für ein einzelnes Objekt auszuführen. Im Beispiel wird davon ausgegangen, dass das Objekt testObject bereits erstellt wurde und die Eigenschaften, auf die verwiesen wird, verfügbar macht.
With testObject
.Height = 100
.Text = "Hello, World"
.ForeColor = System.Drawing.Color.Green
.Font = New System.Drawing.Font(.Font,
System.Drawing.FontStyle.Bold)
End With
With-Schlüsselwort in Objektinitialisierern
Das With-Schlüsselwort kann auch in Objektinitialisierern verwendet werden. Weitere Informationen und Beispiele finden Sie unter Objektinitialisierer: Benannte und anonyme Typen (Visual Basic) und Anonyme Typen (Visual Basic).
Siehe auch
Aufgaben
Gewusst wie: Ausführen von mehreren Aktionen für ein Objekt (Visual Basic)
Gewusst wie: Label-Anweisungen (Visual Basic)
Referenz
Konzepte
Geschachtelte Steuerungsstrukturen (Visual Basic)
Objektinitialisierer: Benannte und anonyme Typen (Visual Basic)