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


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

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

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

Пример

В данном примере оператор 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

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

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

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

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

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