Оператор 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 соответственно.