Or — Operator (Visual Basic)
Wykonuje logiczne odejmowanie dwóch Boolean
wyrażeń lub rozłączenie bitowe dla dwóch wyrażeń liczbowych.
Składnia
result = expression1 Or expression2
generatora
result
Wymagany. Dowolne Boolean
wyrażenie lub liczbowe. Dla Boolean
porównania, result
jest inkluzywną logiczną różnicą dwóch Boolean
wartości. W przypadku operacji result
bitowych jest wartością liczbową reprezentującą włącznie bitowe rozłączenie dwóch wzorców bitów liczbowych.
expression1
Wymagany. Dowolne Boolean
wyrażenie lub liczbowe.
expression2
Wymagany. Dowolne Boolean
wyrażenie lub liczbowe.
Uwagi
Dla Boolean
porównania, result
jest toFalse
, czy i tylko wtedy, gdy zarówno , expression1
jak i expression2
wartość .False
W poniższej tabeli przedstawiono sposób result
określania.
Jeśli expression1 jest |
I expression2 jest |
Wartość parametru result to |
---|---|---|
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Uwaga
Boolean
W porównaniu Or
operator zawsze ocenia oba wyrażenia, które mogą obejmować wykonywanie wywołań procedury. Operator OrElse wykonuje zwarcie, co oznacza, że jeśli expression1
jest True
, to expression2
nie jest oceniane.
W przypadku operacji Or
bitowych operator wykonuje bitowe porównanie identycznych bitów w dwóch wyrażeniach liczbowych i ustawia odpowiedni bit zgodnie result
z poniższą tabelą.
Jeśli bit w expression1 jest |
I bit w expression2 jest |
Bit w result pliku jest |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Uwaga
Ponieważ operatory logiczne i bitowe mają niższy priorytet niż inne operatory arytmetyczne i relacyjne, wszelkie operacje bitowe powinny być ujęte w nawiasy, aby zapewnić dokładne wykonanie.
Typy danych
Jeśli operandy składają się z jednego wyrażenia i jednego Boolean
wyrażenia liczbowego, Visual Basic konwertuje Boolean
wyrażenie na wartość liczbową (–1 dla True
i 0 dla False
) i wykonuje operację bitową.
Boolean
Dla porównania typ danych wyniku to Boolean
. W przypadku porównania bitowego typ danych wynikowych jest typem liczbowym odpowiednim dla typów expression1
danych i expression2
. Zobacz tabelę "Porównania relacyjne i bitowe" w obszarze Typy danych wyników operatorów.
Przeciążenie
Operator Or
może być przeciążony, co oznacza, że klasa lub struktura może ponownie zdefiniować jego zachowanie, gdy operand ma typ tej klasy lub struktury. Jeśli kod używa tego operatora w takiej klasie lub strukturze, upewnij się, że rozumiesz jego ponownie zdefiniowane zachowanie. Aby uzyskać więcej informacji, zobacz Procedury operatorów.
Przykład 1
W poniższym przykładzie użyto Or
operatora do wykonania inkluzywnego logicznego rozłączenia dwóch wyrażeń. Wynik jest wartością reprezentującą Boolean
, czy którekolwiek z dwóch wyrażeń to True
.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Or b > c
secondCheck = b > a Or b > c
thirdCheck = b > a Or c > b
Powyższy przykład generuje wyniki True
odpowiednio , True
i False
.
Przykład 2
W poniższym przykładzie użyto Or
operatora do wykonania logicznego rozłączenia logicznego dla poszczególnych bitów dwóch wyrażeń liczbowych. Bit we wzorcu wyników jest ustawiany, jeśli jeden z odpowiednich bitów w operandach ma wartość 1.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Or b)
secondPattern = (a Or c)
thirdPattern = (b Or c)
Powyższy przykład generuje wyniki odpowiednio 10, 14 i 14.