OrElse-Operator (Visual Basic)
Führt eine inklusive logische Kurzschlussdisjunktion an zwei Ausdrücken aus.
result = expression1 OrElse expression2
Teile
result
Erforderlich. Ein beliebiger Boolean-Ausdruck.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 einer der beiden oder beide Ausdrücke True ergeben, hat result den Wert True. Die folgende Tabelle veranschaulicht, wie result bestimmt wird.
Wert von expression1 |
Und expression2 gleich |
hat result den Wert |
---|---|---|
True |
(nicht ausgewertet) |
True |
False |
True |
True |
False |
False |
False |
Datentypen
Der Operator OrElse 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 OrElse 12 z. B. –1.
Überladen
Der Or-Operator (Visual Basic) und der IsTrue-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 Or und des Operators IsTrue beeinflusst das Verhalten des Operators OrElse. Wenn im Code OrElse für eine Klasse oder Struktur verwendet wird, die Or und IsTrue überlädt, müssen Sie das neu definierte Verhalten der Operatoren kennen. Weitere Informationen finden Sie unter Operatorprozeduren (Visual Basic).
Beispiel
Im folgenden Beispiel wird mit dem Operator OrElse an zwei Ausdrücken eine logische Disjunktion ausgeführt. Das Ergebnis ist ein Boolean-Wert, der darstellt, ob einer der beiden Ausdrücke True ist. Wenn der erste Ausdruck True 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 OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b
Durch das vorangehende Beispiel werden die Ergebnisse True, True bzw. False erzeugt. Bei der Berechnung von firstCheck wird der zweite Ausdruck nicht ausgewertet, da der erste Ausdruck bereits True ist. Der zweite Ausdruck wird jedoch bei der Berechnung von secondCheck ausgewertet.
Im folgenden Beispiel wird eine If...Then-Anweisung mit zwei Prozeduraufrufen dargestellt. Wenn der erste Aufruf True zurückgibt, wird die zweite Prozedur nicht aufgerufen. Dies kann zu unerwarteten Ergebnissen führen, wenn die zweite Prozedur wichtige Aufgaben ausführt, die bei Ausführung dieses Codeabschnitts stets ausgeführt werden müssen.
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
Referenz
Logische/bitweise Operatoren (Visual Basic)
Operatorrangfolge in Visual Basic
Operatoren sortiert nach Funktionalität (Visual Basic)
IsTrue-Operator (Visual Basic)