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 Trueausgewertet 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 False0 und True zu -1wird. 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 Orstellen 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, Trueund False erzeugt. Bei der Berechnung von firstCheckwird der zweite Ausdruck nicht ausgewertet, da der erste bereits Trueist. Der zweite Ausdruck wird jedoch bei der Berechnung von secondCheckausgewertet.

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

Siehe auch