对两 Boolean 个表达式执行逻辑结合,或对两个数值表达式执行按位连。
语法
result = expression1 And expression2
部件
result
必填。 任何 Boolean 或数值表达式。 对于布尔比较, result 是两 Boolean 个值的逻辑结合。 对于按位运算,是一个数值, result 表示两个数值位模式的按位结合。
expression1
必填。 任何 Boolean 或数值表达式。
expression2
必填。 任何 Boolean 或数值表达式。
注解
对于布尔比较,result仅True当和expression2expression1计算结果True为时。 下表说明了如何 result 确定。
如果 expression1 为 |
且 expression2 为 |
值为result |
|---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
注释
在布尔比较中, And 运算符始终计算这两个表达式,其中包括进行过程调用。
AndAlso 运算符执行短路,这意味着如果是expression1False,expression2则不计算。
应用于数值时, And 运算符对两个数值表达式中的相同位置位执行按位比较,并根据下表设置相应的位 result 。
如果位为expression1 |
位传入expression2 |
位为result |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
注释
由于逻辑运算符和按位运算符的优先级低于其他算术和关系运算符,因此任何按位运算都应括在括号中,以确保准确的结果。
数据类型
如果作数由一个 Boolean 表达式和一个数值表达式组成,则 Visual Basic 会将 Boolean 表达式转换为数值(–1 for True 和 0 表示 False),并执行按位运算。
对于布尔比较,结果的数据类型为 Boolean。 为了进行按位比较,结果数据类型是适合数据类型和expression2数据类型的expression1数值类型。 请参阅 运算符结果数据类型中的“关系和按位比较”表。
注释
And可以重载运算符,这意味着当作数具有该类或结构的类型时,类或结构可以重新定义其行为。 如果代码对此类或结构使用此运算符,请确保了解其重新定义的行为。 有关详细信息,请参阅 运算符过程。
示例 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 的结果。