Экспорт (0) Печать
Развернуть все
Развернуть Свернуть
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

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


Добавления сообщества

ДОБАВИТЬ
Корпорация Майкрософт проводит интернет-опрос, чтобы выяснить ваше мнение о веб-сайте MSDN. Если вы желаете принять участие в этом интернет-опросе, он будет отображен при закрытии веб-сайта MSDN.

Вы хотите принять участие?
Показ:
© 2014 Microsoft