Anweisungen in Visual Basic

Eine Anweisung in Visual Basic ist eine vollständige Instruktion. Sie kann Schlüsselwörter, Operatoren, Variablen, Konstanten und Ausdrücke enthalten. Jede Anweisung gehört zu einer der folgenden Kategorien:

  • Deklarationsanweisungen, die eine Variable, Konstante oder Prozedur benennen und auch einen Datentyp angeben können.

  • Ausführbare Anweisungen, die Aktionen starten. Diese Anweisungen rufen eine Methode oder Funktion auf und können Codeblöcke in einer Schleife durchlaufen oder sich in Codeblöcke verzweigen. Zu ausführbaren Anweisungen zählen Zuweisungsanweisungen, die einer Variablen oder Konstanten einen Wert oder einen Ausdruck zuweisen.

In diesem Thema werden die einzelnen Kategorien beschrieben. Darüber hinaus wird erläutert, wie mehrere Anweisungen in einer einzigen Zeile kombiniert werden und wie eine Anweisung über mehrere Zeilen fortgesetzt wird.

Deklarationsanweisungen

Mit Deklarationsanweisungen benennen und definieren Sie Prozeduren, Variablen, Eigenschaften, Arrays und Konstanten. Wenn Sie ein Programmierelement deklarieren, können Sie auch seinen Datentyp, seine Zugriffsebene und seinen Gültigkeitsbereich definieren. Weitere Informationen finden Sie unter Merkmale deklarierter Elemente (Visual Basic).

Das folgende Beispiel enthält drei Deklarationen:

Public Sub applyFormat()
    Const limit As Integer = 33
    Dim thisWidget As New widget
    ' Insert code to implement the procedure.
End Sub

Die erste Deklaration ist die Sub-Anweisung. Zusammen mit der entsprechenden End Sub -Anweisung deklariert sie eine Prozedur mit dem Namen applyFormat. Sie gibt außerdem an, dass applyFormat Public ist. Dies bedeutet, dass jeder Code auf sie zugreifen und sie aufrufen kann.

Die zweite Deklaration ist die Const-Anweisung, die die Konstante limit deklariert und den Integer-Datentyp sowie den Wert 33 angibt.

Die dritte Deklaration ist die Dim-Anweisung, die die Variable thisWidget deklariert. Der Datentyp ist ein bestimmtes Objekt, und zwar ein aus der Widget-Klasse erstelltes Objekt. Sie können eine Variable als beliebigen elementaren Datentyp oder als beliebigen Objekttyp deklarieren, der in der verwendeten Anwendung verfügbar gemacht wird.

Anfangswerte

Beim Ausführen von Code, der eine Deklarationsanweisung enthält, reserviert Visual Basic den für das deklarierte Element erforderlichen Speicher. Wenn das Element einen Wert enthält, wird es von Visual Basic mit dem Standardwert für seinen Datentyp initialisiert. Weitere Informationen finden Sie in Dim-Anweisung (Visual Basic) unter "Verhalten".

Sie können einer Variablen in ihrer Deklaration einen Anfangswert zuweisen, wie im folgenden Beispiel veranschaulicht.

Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.

Wenn es sich bei der Variablen um eine Objektvariable handelt, können Sie beim Deklarieren eine Instanz ihrer Klasse explizit erstellen, indem Sie das Operator New (Visual Basic)-Schlüsselwort verwenden, wie im folgenden Beispiel veranschaulicht.

Dim f As New System.Windows.Forms.Form()

Beachten Sie, dass der Anfangswert, den Sie in einer Deklarationsanweisung angeben, erst einer Variablen zugewiesen wird, wenn ihre Deklarationsanweisung ausgeführt wird. Bis zu diesem Zeitpunkt enthält die Variable den Standardwert für ihren Datentyp.

Ausführbare Anweisungen

Eine ausführbare Anweisung führt eine Aktion aus. Sie kann eine Prozedur aufrufen, an eine andere Stelle im Code verzweigen, verschiedene Anweisungen durchlaufen oder einen Ausdruck auswerten. Eine Zuweisungsanweisung ist eine besondere Variante einer ausführbaren Anweisung.

Im folgenden Beispiel wird eine If...Then...Else-Steuerungsstruktur verwendet, um je nach dem Wert einer Variablen verschiedene Codeblöcke auszuführen. In jedem Codeblock wird eine For...Next-Schleife mit einer festgelegten Anzahl von Wiederholungen ausgeführt.

Public Sub startWidget(ByVal aWidget As widget,
    ByVal clockwise As Boolean, ByVal revolutions As Integer)
    Dim counter As Integer
    If clockwise = True Then
        For counter = 1 To revolutions
            aWidget.spinClockwise()
        Next counter
    Else
        For counter = 1 To revolutions
            aWidget.spinCounterClockwise()
        Next counter
    End If
End Sub

Die If-Anweisung im vorherigen Beispiel überprüft den Wert des Parameters clockwise. Wenn der Wert True ist, wird die spinClockwise-Methode von aWidget aufgerufen. Wenn der Wert False ist, wird die spinCounterClockwise-Methode von aWidget aufgerufen. Die If...Then...Else-Steuerungsstruktur endet mit End If.

Die For...Next-Schleife in jedem Block wiederholt den Aufruf der entsprechenden Methode mit einer Häufigkeit, die dem Wert des revolutions-Parameters entspricht.

Zuweisungsanweisungen

Zuweisungsanweisungen führen Zuweisungsoperationen aus. Bei diesen wird ein Wert auf der rechten Seite des Zuweisungsoperators (=) in dem Element auf der linken Seite gespeichert, wie im folgenden Beispiel veranschaulicht.

v = 42

Im vorherigen Beispiel speichert die Zuweisungsanweisung den Literalwert 42 in der Variablen v.

Geeignete Programmierelemente

Das Programmierelement auf der linken Seite des Zuweisungsoperators muss einen Wert akzeptieren und speichern können. Es muss daher eine Variable oder Eigenschaft sein, die nicht ReadOnly (Visual Basic) ist, oder es muss ein Arrayelement sein. Im Kontext einer Zuweisungsanweisung wird ein solches Element zuweilen als l-Wert ("linker Wert") bezeichnet.

Der Wert auf der rechten Seite des Zuweisungsoperators wird durch einen Ausdruck generiert, der aus einer beliebigen Kombinationen von Literalen, Konstanten, Variablen, Eigenschaften, Arrayelementen, anderen Ausdrücken und Funktionsaufrufen bestehen kann. Dies wird anhand des folgenden Beispiels veranschaulicht:

x = y + z + findResult(3)

Im vorherigen Beispiel wird dem Wert in der Variablen z der Wert in der Variablen y hinzugefügt, und anschließend wird der durch den Aufruf der Funktion findResult zurückgegebene Wert hinzugefügt. Der Gesamtwert dieses Ausdrucks wird dann in der Variablen x gespeichert.

Datentypen in Zuweisungsanweisungen

Außer numerischen Wert kann der Zuweisungsoperator auch String-Werte zuweisen, wie im folgenden Beispiel veranschaulicht.

Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.

Sie können auch Boolean-Werte zuweisen, entweder mit einem Boolean-Literal oder einem Boolean-Ausdruck, wie im folgenden Beispiel veranschaulicht.

Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.

Ebenso können Sie Programmierelementen vom Datentyp Char, Date oder Object entsprechende Werte zuweisen. Sie können auch einem Element, das als Element der Klasse deklariert ist, aus der diese Instanz erstellt wurde, eine Objektinstanz zuweisen.

Verbundzuweisungsanweisungen

Verbundzuweisungsanweisungen führen zunächst eine Operation für einen Ausdruck aus, bevor Sie diesen einem Programmierelement zuweisen. Im folgenden Beispiel wird der Operator += veranschaulicht, der den Wert der Variablen auf der linken Seite des Operators um den Wert des Ausdrucks auf der rechten Seite erhöht.

n += 1

Im vorherigen Beispiel wird dem Wert von n 1 hinzugefügt und anschließend dieser neue Wert in n gespeichert. Dies ist die Kurzform der folgenden Anweisung:

n = n + 1

Eine Vielzahl von Verbundzuweisungsoperationen können mit Operatoren dieses Typs ausgeführt werden. Eine Liste dieser Operatoren und weitere Informationen über sie finden Sie unter Zuweisungsoperatoren (Visual Basic).

Der Verkettungszuweisungsoperator (&=) eignet sich zum Hinzufügen einer Zeichenfolge am Ende einer bereits vorhandenen Zeichenfolge, wie im folgenden Beispiel veranschaulicht.

Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".

Typkonvertierungen in Zuweisungsanweisungen

Der Datentyp des Werts, den Sie einer Variablen, einer Eigenschaft oder einem Arrayelement zuweisen, muss dem jeweiligen Zielelement entsprechen. Versuchen Sie grundsätzlich, einen Wert mit demselben Datentyp wie der Datentyp des Zielelements zu generieren. Einige Typen können jedoch während der Zuweisung in einen anderen Typ konvertiert werden.

Informationen über das Konvertieren von Datentypen finden Sie unter Typkonvertierung in Visual Basic. Kurz gesagt, Visual Basic konvertiert den Wert eines bestimmten Typs automatisch in einen beliebigen anderen Typ, zu dem der ursprüngliche Typ erweitert werden kann. Eine erweiternde Konvertierung wird zur Laufzeit immer erfolgreich und ohne Datenverlust ausgeführt. Visual Basic konvertiert z. B. einen Integer-Wert ggf. in Double, da Integer zu Double erweitert wird. Weitere Informationen finden Sie unter Erweiternde und eingrenzende Konvertierungen (Visual Basic).

Einschränkende Konvertierungen (Konvertierungen, die keine erweiternden Konvertierungen sind) können zur Laufzeit fehlschlagen oder mit Datenverlust ausgeführt werden. Sie können eine einschränkende Konvertierung explizit ausführen, indem Sie eine Typkonvertierungsfunktion verwenden, oder Sie können den Compiler alle Konvertierungen implizit ausführen lassen, indem Sie Option Strict Off festlegen. Weitere Informationen finden Sie unter Implizite und explizite Konvertierungen (Visual Basic).

Anordnen mehrerer Anweisungen in einer Zeile

Sie können mehrere Anweisungen in einer Zeile durch einen Doppelpunkt (:) trennen. Dies wird anhand des folgenden Beispiels veranschaulicht:

Dim sampleString As String = "Hello World" : MsgBox(sampleString)

Dies ist jedoch nur selten sinnvoll, da durch diese Syntaxform der Code schwer leserlich und schwer zu pflegen ist. Daher empfiehlt es sich, nur eine Anweisung pro Zeile zu verwenden.

Fortsetzen einer Anweisung über mehrere Zeilen

Eine Anweisung passt normalerweise in eine Zeile. Wenn sie jedoch zu lang ist, können Sie die Anweisung in der nächsten Zeile fortsetzen. Verwenden Sie dazu ein Zeilenfortsetzungszeichen, das aus einem Leerzeichen vor einem Unterstrich (_) gefolgt von einem Wagenrücklauf besteht. Im folgenden Beispiel wird die ausführbare MsgBox-Anweisung über zwei Zeilen fortgesetzt.

Public Sub demoBox()
    Dim nameVar As String
    nameVar = "John"
    MsgBox("Hello " & nameVar _
        & ". How are you?")
End Sub

Implizite Zeilenfortsetzung

In vielen Fällen können Sie eine Anweisung ohne Angabe eines Unterstrichs (_) in der nächsten Zeile fortsetzen. In der folgenden Tabelle sind die Syntaxelemente aufgeführt, mit denen eine Anweisung implizit in der nächsten Codezeile fortgesetzt wird.

Syntaxelement

Beispiel

Nach einem Komma (,).

Nach einer öffnenden runden Klammer (() oder vor einer schließenden runden Klammer ()).

Nach einer öffnenden geschweiften Klammer ({) oder vor einer schließenden geschweiften Klammer (}).

Weitere Informationen finden Sie unter Objektinitialisierer: Benannte und anonyme Typen (Visual Basic) und Übersicht über Auflistungsinitialisierer (Visual Basic).

Nach dem Beginn eines eingebetteten Ausdrucks (<%=) oder vor dem Ende eines eingebetteten Ausdrucks (%>) in einem XML-Literal.

Weitere Informationen finden Sie unter Eingebettete Ausdrücke in XML (Visual Basic).

Nach dem Verkettungsoperator (&).

Weitere Informationen finden Sie unter Operatoren sortiert nach Funktionalität (Visual Basic).

Nach Zuweisungsoperatoren (=, &=, :=, +=, -=, *=, /=, \=, ^=, <<=, >>=).

Weitere Informationen finden Sie unter Operatoren sortiert nach Funktionalität (Visual Basic).

Nach binären Operatoren (+, -, /, *, Mod, <>, <, >, <=, >=, ^, >>, <<, And, AndAlso, Or, OrElse, Like, Xor) in einem Ausdruck.

Weitere Informationen finden Sie unter Operatoren sortiert nach Funktionalität (Visual Basic).

Nach dem Is-Operator und dem IsNot-Operator.

Weitere Informationen finden Sie unter Operatoren sortiert nach Funktionalität (Visual Basic).

Nach einem Memberqualifiziererzeichen (.) und vor dem Membernamen. Nach einem Memberqualifiziererzeichen müssen Sie jedoch ein Zeilenfortsetzungszeichen (_) einschließen, wenn Sie die With-Anweisung verwenden oder Werte in der Initialisierungsliste für einen Typ angeben. Es empfiehlt sich, die Zeile nach dem Zuweisungsoperator (z. B. =) zu umbrechen, wenn Sie With-Anweisungen oder Objektinitialisierungslisten verwenden.

Weitere Informationen finden Sie unter With...End With-Anweisung (Visual Basic) und Objektinitialisierer: Benannte und anonyme Typen (Visual Basic).

Nach einem XML-Achseneigenschaften-Qualifizierer (. oder .@ oder ...). Sie müssen jedoch ein Zeilenfortsetzungszeichen (_) einschließen, wenn Sie bei Verwendung des With-Schlüsselworts einen Memberqualifizierer angeben.

Weitere Informationen finden Sie unter XML-Achseneigenschaften (Visual Basic).

Nach einem Kleiner-als-Zeichen (<) oder vor einem Größer-als-Zeichen (>), wenn Sie ein Attribut angeben. Außerdem nach einem Größer-als-Zeichen (>), wenn Sie ein Attribut angeben. Sie müssen jedoch ein Zeilenfortsetzungszeichen (_) einschließen, wenn Sie Attribute auf Assemblyebene oder Modulebene angeben.

Weitere Informationen finden Sie unter Attribute (C# und Visual Basic).

Vor und nach Abfrageoperatoren (Aggregate, Distinct, From, Group By, Group Join, Join, Let, Order By, Select, Skip, Skip While, Take, Take While, Where, In, Into, On, Ascending und Descending). Zeilen zwischen den Schlüsselwörtern von Abfrageoperatoren, die sich aus mehreren Schlüsselwörtern (Order By, Group Join, Take While und Skip While) zusammensetzen, dürfen nicht umbrochen werden.

Weitere Informationen finden Sie unter Abfragen (Visual Basic).

Nach dem In-Schlüsselwort in einer For Each-Anweisung.

Weitere Informationen finden Sie unter For Each...Next-Anweisung (Visual Basic).

Nach dem From-Schlüsselwort in einem Auflistungsinitialisierer.

Weitere Informationen finden Sie unter Übersicht über Auflistungsinitialisierer (Visual Basic).

Hinzufügen von Kommentaren

Quellcode ist nicht immer selbsterklärend, selbst nicht für den Programmierer, der ihn geschrieben hat. Daher verwenden die meisten Programmierer eingebettete Kommentare, um den Code zu dokumentieren. Kommentare im Code dienen zur Erläuterung einer Prozedur oder zur Angabe bestimmter Anweisungen für andere Personen, die den Code lesen oder damit arbeiten. In Visual Basic werden Kommentare während der Kompilierung ignoriert und haben keine Auswirkung auf den kompilierten Code.

Kommentarzeilen beginnen mit einem Apostroph (') oder REM vor einem Leerzeichen. Sie können an beliebiger Stelle im Code, außer in einer Zeichenfolge, hinzugefügt werden. Wenn Sie einen Kommentar an eine Anweisung anhängen möchten, fügen Sie nach der Anweisung einen Apostroph oder REM ein, und geben Sie danach den Kommentar ein. Kommentare können auch in eine separate Zeile geschrieben werden. Im folgenden Beispiel werden diese Möglichkeiten veranschaulicht.

' This is a comment on a separate code line.
REM This is another comment on a separate code line.
x += a(i) * b(i) ' Add this amount to total.
MsgBox(statusMessage) REM Inform operator of status.

Überprüfen von Kompilierungsfehlern

Wenn nach der Eingabe einer Codezeile die Zeile mit einer blauen Wellenlinie unterstrichen ist (möglicherweise wird auch eine Fehlermeldung angezeigt), enthält die Anweisung einen Syntaxfehler. Sie müssen den Fehler in der Anweisung finden (indem Sie in der Aufgabenliste nachschauen oder mit der Maus auf den Fehler zeigen und die Fehlermeldung lesen) und korrigieren. Solange nicht alle Syntaxfehler im Code behoben sind, kann das Programm nicht ordnungsgemäß kompiliert werden.

Verwandte Abschnitte

Ausdruck

Definition

Zuweisungsoperatoren (Visual Basic)

Enthält Links zu Sprachreferenzseiten, die Zuweisungsoperatoren, z. B. =, *= und &=, beschreiben.

Operatoren und Ausdrücke in Visual Basic

Beschreibt, wie Elemente mit Operatoren kombiniert werden, um neue Werte zu erhalten.

Gewusst wie: Umbrechen und Zusammenfassen von Anweisungen in Code (Visual Basic)

Veranschaulicht, wie eine einzelne Anweisung auf mehrere Zeilen verteilt wird und wie mehrere Anweisungen in einer Zeile platziert werden.

Gewusst wie: Label-Anweisungen (Visual Basic)

Beschreibt das Bezeichnen einer Codezeile.