Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Führt eine logische Kurzschaltung in zwei Ausdrücken durch.
Syntax
result = expression1 AndAlso expression2
Bestandteile
| Begriff | Definition |
|---|---|
result |
Erforderlich. Ein beliebiger Boolean Ausdruck. Das Ergebnis ist das Boolean Ergebnis des Vergleichs der beiden Ausdrücke. |
expression1 |
Erforderlich. Ein beliebiger Boolean Ausdruck. |
expression2 |
Erforderlich. Ein beliebiger Boolean Ausdruck. |
Bemerkungen
Ein logischer Vorgang wird als Kurzschluss bezeichnet, wenn der kompilierte Code die Auswertung eines Ausdrucks abhängig vom Ergebnis eines anderen Ausdrucks umgehen kann. Wenn das Ergebnis des ersten ausgewerteten Ausdrucks das Endergebnis des Vorgangs bestimmt, muss der zweite Ausdruck nicht ausgewertet werden, da es das Endergebnis nicht ändern kann. Kurzschluss kann die Leistung verbessern, wenn der umgangene Ausdruck komplex ist oder Prozeduraufrufe umfasst.
Wenn beide Ausdrücke als Trueausgewertet werden , result ist True. In der folgenden Tabelle wird veranschaulicht, wie result ermittelt wird.
Wenn expression1 |
Und expression2 ist |
Der Wert von result ist |
|---|---|---|
True |
True |
True |
True |
False |
False |
False |
(nicht ausgewertet) | False |
Hinweis
Im booleschen Vergleich wertet der And Operator immer beide Ausdrücke aus, die Prozeduraufrufe umfassen können. Der AndAlso-Operator führt Kurzschluss durch, was bedeutet, dass wenn expression1 der Wert Falseexpression2 nicht ausgewertet wird.
Datentypen
Der AndAlso Operator wird nur für den booleschen Datentyp definiert. Visual Basic konvertiert jeden Operanden nach Bedarf, Boolean bevor er den Ausdruck auswertet. Wenn Sie das Ergebnis einem numerischen Typ zuweisen, konvertiert Visual Basic es in Boolean diesen Typ, sodass False es wird 0 und True wird -1.
Weitere Informationen finden Sie unter Boolesche Typkonvertierungen.
Überladen
Der Und-Operator und der IsFalse-Operator können überladen werden, was bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. Die Überladung der And Operatoren wirkt IsFalse sich auf das Verhalten des AndAlso Operators aus. Wenn Ihr Code für eine Klasse oder Struktur verwendet AndAlso wird, die überladen And wird, und IsFalsestellen Sie sicher, dass Sie deren neu definiertes Verhalten verstehen. Weitere Informationen finden Sie unter Operatorprozeduren.
Beispiel 1
Im folgenden Beispiel wird der AndAlso Operator verwendet, um eine logische Verbindung für zwei Ausdrücke auszuführen. Das Ergebnis ist ein Boolean Wert, der angibt, ob der gesamte zusammenhängende Ausdruck wahr ist. Wenn der erste Ausdruck lautet False, wird die zweite nicht ausgewertet.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b AndAlso b > c
secondCheck = b > a AndAlso b > c
thirdCheck = a > b AndAlso c > b
Im vorherigen Beispiel werden Ergebnisse von True, Falsebzw False. . . Bei der Berechnung des secondCheckzweiten Ausdrucks wird der zweite Ausdruck nicht ausgewertet, da der erste bereits Falsevorhanden ist. Der zweite Ausdruck wird jedoch in der Berechnung ausgewertet thirdCheck.
Beispiel 2
Das folgende Beispiel zeigt eine Function Prozedur, die nach einem bestimmten Wert zwischen den Elementen eines Arrays sucht. Wenn das Array leer ist oder die Arraylänge überschritten wurde, testet die While Anweisung das Arrayelement nicht anhand des Suchwerts.
Public Function findValue(ByVal arr() As Double,
ByVal searchValue As Double) As Double
Dim i As Integer = 0
While i <= UBound(arr) AndAlso arr(i) <> searchValue
' If i is greater than UBound(arr), searchValue is not checked.
i += 1
End While
If i > UBound(arr) Then i = -1
Return i
End Function