Freigeben über


AndAlso-Operator (Visual Basic)

Führt eine verkürzte logische Konjunktion zweier Ausdrücke aus.

Syntax

result = expression1 AndAlso expression2  

Bestandteile

Begriff Definition
result Erforderlich. Beliebiger Boolean -Ausdruck. Das Ergebnis ist das Boolean-Ergebnis des Vergleichs der beiden Ausdrücke.
expression1 Erforderlich. Beliebiger Boolean -Ausdruck.
expression2 Erforderlich. 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, ist es nicht erforderlich, den zweiten Ausdruck auszuwerten, da er das Endergebnis nicht ändern kann. Kurzschlüsse können die Leistung verbessern, wenn der umgangene Ausdruck komplex ist oder Prozeduraufrufe umfasst.

Wenn beide Ausdrücke als Trueausgewertet werden , ist resultTrue. Die folgende Tabelle veranschaulicht, wie result bestimmt wird.

Wenn expression1 gleich 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 Kurzschlüsse durch, d. h., wenn expression1False ist, wird expression2 nicht ausgewertet.

Datentypen

Der AndAlso Operator ist nur für den booleschen Datentyp definiert. Visual Basic konvertiert jeden Operanden nach Bedarf in, bevor Boolean der Ausdruck ausgewertet wird. Wenn Sie das Ergebnis einem numerischen Typ zuweisen, konvertiert Visual Basic es von Boolean in diesen Typ, sodass False0 und True zu -1wird. Weitere Informationen finden Sie unter Umwandlung und 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. Das Überladen der And Operatoren und IsFalse wirkt sich auf das Verhalten des AndAlso Operators aus. Wenn Ihr Code für eine Klasse oder Struktur verwendet AndAlso wird, die überlastet ist, und Andstellen Sie sicher, dass Sie ihr neu definiertes IsFalse Verhalten verstehen. Weitere Informationen finden Sie unter Operator Procedures.

Beispiel 1

Im folgenden Beispiel wird der AndAlso-Operator verwendet, um eine logische Verbindung zwischen zwei Ausdrücken auszuführen. Das Ergebnis ist ein Boolean-Wert, der angibt, ob der gesamte zusammenhängende Ausdruck wahr ist. Wenn der erste Ausdruck False ist, wird der 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, False und False erzeugt. Bei der Berechnung von secondCheck wird der zweite Ausdruck nicht ausgewertet, da der erste bereits False ist. Der zweite Ausdruck wird jedoch bei der Berechnung von thirdCheckausgewertet.

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