AndAlso-Operator (Visual Basic)

Führt eine logische Kurzschlusskonjunktion zweier Ausdrücke aus.

result = expression1 AndAlso expression2

Teile

Begriff

Definition

result

Erforderlich. Ein beliebiger Boolean-Ausdruck. Das Ergebnis ist das Boolean-Ergebnis des Vergleichs zwischen zwei Ausdrücken.

expression1

Erforderlich. Ein beliebiger Boolean-Ausdruck.

expression2

Erforderlich. Ein beliebiger Boolean-Ausdruck.

Hinweise

Eine logische Operation wird als Kurzschlussoperation bezeichnet, wenn der kompilierte Code die Auswertung eines Ausdrucks abhängig von dem Ergebnis eines anderen Ausdrucks umgehen kann. Wenn das Ergebnis des ersten ausgewerteten Ausdrucks das Endergebnis der Operation bestimmt, muss der zweite Ausdruck nicht ausgewertet werden, da dieser das Endergebnis nicht ändern kann. Kurzschlussoperationen können zu einer Leistungssteigerung führen, wenn der umgangene Ausdruck sehr komplex ist oder Prozeduraufrufe enthält.

Wenn beide Ausdrücke True ergeben, ist result ebenfalls True. Die folgende Tabelle veranschaulicht, wie result bestimmt wird.

Wert von expression1

Und expression2 gleich

hat result den Wert

True

True

True

True

False

False

False

(nicht ausgewertet)

False

Datentypen

Der Operator AndAlso wird nur für den Boolean-Datentyp (Visual Basic) definiert. Visual Basic konvertiert jeden Operanden je nach Bedarf in Boolean-Werte und führt die Operation ganz als Boolean aus. Wenn Sie das Ergebnis einem numerischen Typ zuweisen, konvertiert Visual Basic es vom Boolean-Typ in diesen Typ. Dies kann zu unerwartetem Verhalten führen. Bei der Konvertierung in Integer ergibt 5 AndAlso 12 z. B. –1.

Überladen

Der And-Operator (Visual Basic) und der IsFalse-Operator (Visual Basic) können überladen werden. Das bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definiert, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. Das Überladen des Operators And und des Operators IsFalse beeinflusst das Verhalten des Operators AndAlso. Wenn im Code AndAlso für eine Klasse oder Struktur verwendet wird, die And und IsFalse überlädt, müssen Sie das neu definierte Verhalten der Operatoren kennen. Weitere Informationen finden Sie unter Operatorprozeduren (Visual Basic).

Beispiel

In diesem Beispiel wird mit dem Operator AndAlso eine logische Konjunktion zweier Ausdrücke ausgeführt. Das Ergebnis ist ein Boolean-Wert, der darstellt, ob der gesamte verbundene Ausdruck True 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

Durch das vorangehende Beispiel werden die Ergebnisse True, False bzw. False erzeugt. Bei der Berechnung von secondCheck wird der zweite Ausdruck nicht ausgewertet, da der erste Ausdruck bereits False ist. Der zweite Ausdruck wird jedoch bei der Berechnung von thirdCheck ausgewertet.

Das folgende Beispiel zeigt eine Function-Prozedur, die in den Elementen eines Arrays nach einem gegebenen Wert sucht. Wenn das Array leer ist oder die zulässige Arraylänge überschritten wurde, wird das Arrayelement von der While-Anweisung nicht auf den Suchwert überprüft.

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

Referenz

Logische/bitweise Operatoren (Visual Basic)

Operatorrangfolge in Visual Basic

Operatoren sortiert nach Funktionalität (Visual Basic)

And-Operator (Visual Basic)

IsFalse-Operator (Visual Basic)

Konzepte

Logische und bitweise Operatoren in Visual Basic