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

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

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

result = expression1 And expression2

Компоненты

  • result
    Обязательно. Любое выражение типа Boolean или числовое выражение. При сравнении логических выражений result — логическое умножение величин типа Boolean. При поразрядных операциях result — числовое значение, представляющее побитовое логическое умножение двух числовых битовых шаблонов.

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

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

Заметки

Для логического сравнения result — True только в том случае, если оба выражения expression1 и expression2 равны True. В следующей таблице показано определение result:

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

и expression2 имеет значение

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

True

True

True

True

False

False

False

True

False

False

False

False

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

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

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

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

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

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

1

1

1

1

0

0

0

1

0

0

0

0

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

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

Типы данных

Если операнды состоят из одного выражения типа Boolean и одного числового выражения, Visual Basic преобразует выражение типа Boolean в числовое значение (–1 для True и 0 для False) и выполняет битовую операцию.

Для логического сравнения тип данных результата — Boolean. Тип данных результата для побитового сравнения является числовым типом, соответствующим типам данных expression1 и expression2. См. таблицу "Относительное и побитовое сравнение" в разделе Типы данных результатов оператора.

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

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

Пример

В данном примере оператор And используется для выполнения логического умножения двух выражений. Результатом является значение типа Boolean, которое указывает, имеют ли оба выражения значение True.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = a > b And b > c
secondCheck = b > a And b > c

В предыдущем примере формируются результаты True и False соответственно.

В следующем примере оператор And используется для выполнения логического умножения отдельных битов двух числовых выражений. В результирующем шаблоне устанавливается бит, если в обоих операндах установлены соответствующие биты.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a And b)
secondPattern = (a And c)
thirdPattern = (b And c)

В предыдущем примере получаются результаты 8, 2 и 0 соответственно.

См. также

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

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

Ссылки

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

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

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

Оператор AndAlso