Поделиться через


Оператор OrElse

Обновлен: Ноябрь 2007

Выполняет сокращенное вычисление логического сложения двух выражений.

result = expression1 OrElse expression2

Компоненты

  • result
    Обязательный параметр. Любое выражение типа Boolean.

  • expression1
    Обязательный параметр. Любое выражение типа Boolean.

  • expression2
    Обязательный параметр. Любое выражение типа Boolean.

Заметки

Логическая операция называется сокращенной, если компилируемый код может пропустить оценку одного выражения, зависящего от результата другого выражения. Если результат первого оцененного выражения определяет конечный результат операции, то отсутствует необходимость оценивать второе выражение, так как это не повлияет на конечный результат. Сокращенное вычисление улучшает производительность, если пропущенное выражение является сложным или содержит вызовы процедур.

Если оба выражения имеют значения True, то result тоже True. В следующей таблице показано определение result.

Если выражение expression1 имеет значение

и выражение expression2 имеет значение

значение result будет следующим

True

(не вычисляется)

True

False

True

True

False

False

False

Типы данных

Оператор OrElse определен только для Тип данных Boolean (Visual Basic). В Visual Basic каждый операнд при необходимости преобразуется к типу Boolean, после чего операция полностью выполняется с использованием типа Boolean. Если присвоить результат переменной числового типа, Visual Basic преобразует его из Boolean к этому типу. Это может привести к непредвиденному поведению. Например, результат 5 OrElse 12 равен –1 при преобразовании к типу Integer.

Перегрузка

Оператор Оператор Or (Visual Basic) и Оператор IsTrue может быть перегруженным. Это означает, что класс или структура может переопределить его поведение, если операнд имеет тип класса или структуры. Перегрузка операторовOr и IsTrue влияет на поведение оператора OrElse. Если в коде используется оператор OrElse для класса или структуры, которая перегружает Or и IsTrue, убедитесь, что вы понимаете его переопределенное поведение. Дополнительные сведения см. в разделе Процедуры операторов.

Пример

В данном примере оператор OrElse используется для выполнения логического сложения двух выражений. Результат представляет собой значение типа 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 OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b

В предыдущем примере формируются результаты True, True и False соответственно. При вычислении firstCheck второе выражение не вычисляется, поскольку первое значение уже равно True. Тем не менее второе выражение вычисляется в расчете secondCheck.

В следующем примере показывается оператор If...Then,содержащий два вызова процедур. Если первый вызов возвращает True, вторая процедура не вызывается. Это может привести к непредсказуемым результатам, если вторая процедура выполняет важные задачи, которые должны всегда быть выполнены при запуске в этом разделе кода.

If testFunction(5) = True OrElse otherFunction(4) = True Then
    ' If testFunction(5) is True, otherFunction(4) is not called.
    ' Insert code to be executed.
End If

См. также

Основные понятия

Логические и побитовые операторы в Visual Basic

Ссылки

Логические (побитовые) операторы

Порядок применения операторов в Visual Basic

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

Оператор Or (Visual Basic)

Оператор IsTrue