Оператор 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

06s37a7f.alert_note(ru-ru,VS.90).gifПримечание.

При логическом сравнении Boolean оператор Or всегда вычисляет оба выражения, которые могут включать вызовы процедур. Оператор OrElse реализует сокращенную обработку, это означает, что, если expression1 имеет значение True, то expression2 не вычисляется.

При побитовых операциях оператор Or выполняет побитовое сравнение одинаково расположенных битов в двух числовых выражениях и задает соответствующий бит в элементе result согласно следующей таблице.

Если бит в expression1 имеет значение

И бит в expression2 имеет значение

Бит в result имеет значение

1

1

1

1

0

1

0

1

1

0

0

0

06s37a7f.alert_note(ru-ru,VS.90).gifПримечание.

Поскольку логические и битовые операторы имеют более низкий приоритет по сравнению с другими арифметическими и сравнительными операторами, битовые операции следует заключать в круглые скобки, чтобы обеспечить правильное выполнение.

Типы данных

Если операнды состоят из одного выражения типа 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

Список операторов, сгруппированных по функциональному назначению

Оператор OrElse