Логические операторы для пользователей Visual Basic 6.0

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

Для повышения производительности в Visual Basic 2008 удалены два логических оператора и добавлены два других оператора.

Visual Basic 6.0

В Visual Basic 6.0 логические операторы — And, Or, Not и Xor — всегда вычисляют все выражения в своих операндах.

Операторы Eqv и Imp используются для проверки логической эквивалентности и импликации для двух выражений.

Visual Basic 2008

В Visual Basic 2008 операторы And, Or, Not и Xor по-прежнему вычисляют все выражения, входящие в их операнды. Кроме того, в Visual Basic 2008 введены два новых оператора: AndAlso и OrElse, которые могут сократить время выполнения программы с помощью упрощенных логических вычислений. Если при вычислении первого операнда оператора AndAlso получается значение False, то второй операнд не вычисляется. Если при вычислении первого операнда оператора OrElse получается значение True, то второй операнд не вычисляется.

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

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

Операторы Eqv и Imp не поддерживаются. Для логического сравнения следует вместо оператора Eqv использовать оператор равенства (=). Для поразрядных сравнений следует использовать операторы Not и XOr, как показано в следующем примере:

Result = Not (A XOr B) 'Same as A Eqv B
                       '(True unless A and B are not both True or False

Логический оператор Imp можно заменить выражением, в котором используются операторы Not и Or, как показано в следующем примере:

Result = (Not A) Or B  'Same as A Imp B 
                       '(True unless A is True and B is False.)

Таким же образом можно заменить поразрядный оператор Imp, используя Not и Or в числовых операндах.

См. также

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

Сводка изменений поддержки элементов программирования

Ссылки

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

Оператор AndAlso

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

Оператор OrElse

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

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

TimeSpan