Оператор Or (Visual Basic)
Выполняет логическую дисъюнкцию для двух Boolean
выражений или побитовую дисъюнкцию для двух числовых выражений.
Синтаксис
result = expression1 Or expression2
Детали
result
Обязательный. Любое Boolean
или числовое выражение. Для Boolean
сравнения, result
является инклюзивным логическим дисъюнкционом двух Boolean
значений. Для побитовых операций используется числовое значение, result
представляющее включающее в себя побитовое дисъюнкционирование двух числовых битовых шаблонов.
expression1
Обязательный. Любое Boolean
или числовое выражение.
expression2
Обязательный. Любое Boolean
или числовое выражение.
Замечания
Для Boolean
сравнения, result
если False
и только если оба expression1
и expression2
оценивается False
. В следующей таблице показано, как result
определяется.
Если expression1 имеет значение |
И expression2 есть |
Значение result равно |
---|---|---|
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Примечание.
Boolean
В сравнении Or
оператор всегда вычисляет оба выражения, которые могут включать вызовы процедур. Оператор OrElse выполняет короткое замыкание, что означает, что если expression1
естьTrue
, то expression2
не оценивается.
Для побитовых операций Or
оператор выполняет побитовое сравнение идентичных битов в двух числовых выражениях и задает соответствующий бит в result
соответствии со следующей таблицей.
Если бит включено expression1 |
И бит в expression2 |
Бит в result |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Примечание.
Так как логические и битовые операторы имеют более низкий приоритет, чем другие арифметические и реляционные операторы, все побитовые операции должны быть заключены в скобки, чтобы обеспечить точное выполнение.
Типы данных
Если операнды состоят из одного выражения и одного Boolean
числового выражения, Visual Basic преобразует Boolean
выражение в числовое значение (–1 для True
и 0 для False
) и выполняет побитовую операцию.
Boolean
Для сравнения тип данных результата .Boolean
Для побитового сравнения результирующий тип данных является числовым типом, подходящим для типов expression1
данных и expression2
. См. таблицу "Сравнения реляционных и битовых" в типах данных операторов.
Перегрузка
Оператор Or
может быть перегружен, что означает, что класс или структура могут переопределить его поведение, если операнда имеет тип этого класса или структуры. Если код использует этот оператор в таком классе или структуре, убедитесь, что вы понимаете его переопределенное поведение. Для получения дополнительной информации см. Operator Procedures.
Пример 1
В следующем примере оператор используется Or
для выполнения инклюзивного логического дисъюнкциона для двух выражений. Результатом является Boolean
значение, представляющее, является 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
Приведенный выше пример создает результаты True
, True
а False
также соответственно.
Пример 2
В следующем примере оператор используется Or
для выполнения инклюзивного логического дисъюнкционации отдельных битов двух числовых выражений. Бит в шаблоне результата устанавливается, если для одного из соответствующих битов операндов задано значение 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)
В предыдущем примере приводятся результаты 10, 14 и 14 соответственно.