OrElse — Operator (Visual Basic)
Wykonuje zwarcie inkluzywnego logicznego rozłączenia na dwóch wyrażeniach.
Składnia
result = expression1 OrElse expression2
generatora
result
Wymagany. Dowolne Boolean
wyrażenie.
expression1
Wymagany. Dowolne Boolean
wyrażenie.
expression2
Wymagany. Dowolne Boolean
wyrażenie.
Uwagi
Mówi się, że operacją logiczną jest zwarcie , jeśli skompilowany kod może pominąć ocenę jednego wyrażenia w zależności od wyniku innego wyrażenia. Jeśli wynik pierwszego obliczonego wyrażenia określa końcowy wynik operacji, nie ma potrzeby obliczania drugiego wyrażenia, ponieważ nie może zmienić wyniku końcowego. Zwarcie może poprawić wydajność, jeśli pominięte wyrażenie jest złożone lub jeśli obejmuje wywołania procedury.
Jeśli wyrażenie lub oba wyrażenia są obliczane na True
wartość , result
to True
. W poniższej tabeli przedstawiono sposób result
określania.
Jeśli expression1 jest |
I expression2 jest |
Wartość parametru result to |
---|---|---|
True |
(nie oceniono) | True |
False |
True |
True |
False |
False |
False |
Typy danych
Operator OrElse
jest zdefiniowany tylko dla typu danych logicznych. Program Visual Basic konwertuje każdy operand zgodnie z potrzebami Boolean
przed oceną wyrażenia. Jeśli przypiszesz wynik do typu liczbowego, język Visual Basic konwertuje go z Boolean
na taki typ, który False
staje się 0
i True
staje się .-1
Aby uzyskać więcej informacji, zobacz Konwersje typów logicznych.
Przeciążenie
Operator Or i Operator IsTrue mogą być przeciążone, co oznacza, że klasa lub struktura może ponownie zdefiniować swoje zachowanie, gdy operand ma typ tej klasy lub struktury. Przeciążenie Or
operatorów i IsTrue
wpływa na zachowanie OrElse
operatora. Jeśli kod jest używany OrElse
w klasie lub strukturze, która przeciąża Or
i IsTrue
, upewnij się, że rozumiesz ich ponownie zdefiniowane zachowanie. Aby uzyskać więcej informacji, zobacz Procedury operatorów.
Przykład 1
W poniższym przykładzie użyto OrElse
operatora do wykonania logicznego rozłączenia dwóch wyrażeń. Wynik jest wartością reprezentującą Boolean
, czy któreś z dwóch wyrażeń jest prawdziwe. Jeśli pierwsze wyrażenie to True
, drugi nie jest obliczany.
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
Powyższy przykład generuje wyniki True
odpowiednio , True
i False
. W obliczeniu firstCheck
wartości wyrażenie drugie nie jest obliczane, ponieważ pierwsze jest już True
. Jednak drugie wyrażenie jest obliczane w obliczeniu secondCheck
wartości .
Przykład 2
W poniższym przykładzie przedstawiono instrukcję ...Then
zawierającą If
dwa wywołania procedury. Jeśli pierwsze wywołanie zwróci True
wartość , druga procedura nie zostanie wywołana. Może to spowodować nieoczekiwane wyniki, jeśli druga procedura wykonuje ważne zadania, które powinny być zawsze wykonywane po uruchomieniu tej sekcji kodu.
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