Оператор 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 соответственно.

См. также