Freigeben über


AndAlso-Operator (Visual Basic)

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

Siehe auch