Freigeben über


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)

Or-Operator (Visual Basic)

IsTrue-Operator (Visual Basic)

Konzepte

Logische und bitweise Operatoren in Visual Basic