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 Truewartość , 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 Trueodpowiednio , Truei False . W obliczeniu firstCheckwartości wyrażenie drugie nie jest obliczane, ponieważ pierwsze jest już True. Jednak drugie wyrażenie jest obliczane w obliczeniu secondCheckwartości .

Przykład 2

W poniższym przykładzie przedstawiono instrukcję ...Then zawierającą Ifdwa wywołania procedury. Jeśli pierwsze wywołanie zwróci Truewartość , 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

Zobacz też