OrElse-Operator (Visual Basic)
Führt eine kurzschließende logische Disjunktion an zwei Ausdrücken durch.
Syntax
result = expression1 OrElse expression2
Bestandteile
result
Erforderlich. Beliebiger Boolean
-Ausdruck.
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 einer oder beide Ausdrücke als True
ausgewertet werden, result
ist True
. Die folgende Tabelle veranschaulicht, wie result
bestimmt wird.
Wenn expression1 gleich |
Und expression2 ist |
Der Wert von result ist |
---|---|---|
True |
(nicht ausgewertet) | True |
False |
True |
True |
False |
False |
False |
Datentypen
Der OrElse
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 False
0
und True
zu -1
wird.
Weitere Informationen finden Sie unter Umwandlung und Typkonvertierungen.
Überladen
Der Oder-Operator und der IsTrue-Operator können überladen werden, was bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand über den Typ dieser Klasse oder Struktur verfügt. Das Überladen der Or
Operatoren und IsTrue
wirkt sich auf das Verhalten des OrElse
Operators aus. Wenn Ihr Code für eine Klasse oder Struktur verwendet OrElse
wird, die überlastet ist, und Or
stellen Sie sicher, dass Sie ihr neu definiertes IsTrue
Verhalten verstehen. Weitere Informationen finden Sie unter Operator Procedures.
Beispiel 1
Im folgenden Beispiel wird der OrElse
Operator verwendet, um eine logische Disjunktion für zwei Ausdrücke auszuführen. Das Ergebnis ist ein Boolean
Wert, der angibt, ob einer der beiden Ausdrücke true ist. Wenn der erste Ausdruck ist True
, 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 OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b
Im vorherigen Beispiel werden Ergebnisse von True
, True
und False
erzeugt. Bei der Berechnung von firstCheck
wird der zweite Ausdruck nicht ausgewertet, da der erste bereits True
ist. Der zweite Ausdruck wird jedoch bei der Berechnung von secondCheck
ausgewertet.
Beispiel 2
Das folgende Beispiel zeigt eine If
...Then
-Anweisung, die zwei Prozeduraufrufe enthält. Wenn der erste Aufruf zurückgibt True
, 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 Codeabschnitt 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