Freigeben über


OrElse-Operator (Visual Basic)

Führt Kurzschluss einschließlich logischer Disjunktion für zwei Ausdrücke durch.

Syntax

result = expression1 OrElse expression2  

Bestandteile

result
Erforderlich. Ein beliebiger Boolean Ausdruck.

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 eine oder beide Ausdrücke als Trueausgewertet werden, lautet dies resultTrue. In der folgenden Tabelle wird veranschaulicht, wie result ermittelt wird.

Wenn expression1 Und expression2 ist Der Wert von result ist
True (nicht ausgewertet) True
False True True
False False False

Datentypen

Der OrElse 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 Or-Operator und der IsTrue-Operator können überladen werden. Dies bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. Die Überladung der Or Operatoren wirkt IsTrue sich auf das Verhalten des OrElse Operators aus. Wenn Ihr Code für eine Klasse oder Struktur verwendet OrElse wird, die überladen Or wird, und IsTruestellen Sie sicher, dass Sie deren neu definiertes Verhalten verstehen. Weitere Informationen finden Sie unter Operatorprozeduren.

Beispiel 1

Im folgenden Beispiel wird der OrElse Operator zum Ausführen einer logischen Disjunktion für zwei Ausdrücke verwendet. Das Ergebnis ist ein Boolean Wert, der angibt, ob einer der beiden Ausdrücke wahr ist. Wenn der erste Ausdruck lautet True, 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 OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b

Im vorangehenden Beispiel werden Ergebnisse von True, Truebzw False . Bei der Berechnung des firstCheckzweiten Ausdrucks wird der zweite Ausdruck nicht ausgewertet, da der erste bereits Truevorhanden ist. Der zweite Ausdruck wird jedoch in der Berechnung ausgewertet secondCheck.

Beispiel 2

Das folgende Beispiel zeigt eine ...Then -IfAnweisung mit zwei Prozeduraufrufen. Wenn der erste Aufruf zurückgegeben Truewird, wird die zweite Prozedur nicht aufgerufen. Dies kann zu unerwarteten Ergebnissen führen, wenn die zweite Prozedur wichtige Aufgaben ausführt, die immer ausgeführt werden sollten, wenn dieser Abschnitt des Codes ausgeführt wird.

If testFunction(5) = True OrElse otherFunction(4) = True Then
    ' If testFunction(5) is True, otherFunction(4) is not called.
    ' Insert code to be executed.
End If

Siehe auch