Оператор Or (Visual Basic)
Обновлен: Ноябрь 2007
Выполняет операцию логической дизъюнкции над двумя выражениями типа Boolean или операцию побитовой дизъюнкции над двумя числовыми выражениями.
result = expression1 Or expression2
Части
result
Обязательно. Любое выражение типа Boolean или числовое выражение. Для сравнения Booleanresult является операцией логической включающей дизъюнкции двух значений 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 может быть перегружен; это означает, что класс или структура может переопределить его поведение, если операнд имеет тип соответствующего класса или структуры. Если в коде используется этот оператор для такого класса или структуры, убедитесь, что его переопределенное поведение вам понятно. Дополнительные сведения см. в разделе Процедуры операторов.
Пример
В данном примере оператор 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 соответственно.
В следующем примере оператор 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 соответственно.
См. также
Основные понятия
Логические и побитовые операторы в Visual Basic
Ссылки
Логические (побитовые) операторы
Порядок применения операторов в Visual Basic
Список операторов, сгруппированных по функциональному назначению