Freigeben über


OrElse-Operator

Aktualisiert: November 2007

Führt eine inklusive logische Kurzschlussdisjunktion an zwei Ausdrücken aus.

result = expression1 OrElse expression2

Bestandteile

  • result
    Erforderlich. Beliebiger Boolean-Ausdruck.

  • expression1
    Erforderlich. Beliebiger Boolean-Ausdruck.

  • expression2
    Erforderlich. 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.

Wenn expression1 gleich

und expression2 gleich

hat result den Wert

True

(nicht ausgewertet)

True

False

True

True

False

False

False

Datentypen

Der OrElse-Operator 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 komplett als Boolean-Operation 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 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 Or-Operators und des IsTrue-Operators beeinflusst das Verhalten des OrElse-Operators. 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.

Beispiel

Im folgenden Beispiel wird mit dem OrElse-Operator 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

Konzepte

Logische und bitweise Operatoren in Visual Basic

Referenz

Logische/Bitweise Operatoren

Operatorrangfolge in Visual Basic

Operatoren sortiert nach Funktionalität

Or-Operator (Visual Basic)

IsTrue-Operator