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


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

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

Синтаксис

result = expression1 And expression2  

Детали

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

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

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

Замечания

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

Если expression1 имеет значение И expression2 есть Значение result равно
True True True
True False False
False True False
False False False

Примечание.

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

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

Если бит включено expression1 И бит в expression2 Бит в result
1 1 1
1 0 0
0 1 0
0 0 0

Примечание.

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

Типы данных

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

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

Примечание.

Оператор And может быть перегружен, что означает, что класс или структура могут переопределить его поведение, если операнда имеет тип этого класса или структуры. Если код использует этот оператор в таком классе или структуре, убедитесь, что вы понимаете его переопределенное поведение. Для получения дополнительной информации см. Operator Procedures.

Пример 1

В следующем примере оператор используется 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.

Пример 2

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

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 соответственно.

См. также