Not 运算符 (Visual Basic)

更新:2007 年 11 月

对 Boolean 表达式执行逻辑求反,或对数值表达式执行按位求反。

result = Not expression

各部分说明

  • result
    必选。任何 Boolean 或数值表达式。

  • expression
    必选。任何 Boolean 或数值表达式。

备注

对于 Boolean 表达式,下表说明如何确定 result。

如果 expression 为

result 的值为

True

False

False

True

对于数值表达式,Not 运算符将任何数值表达式的位值反转,并且根据下表设置 result 中的相应位。

如果 expression 中的位为

result 中的位为

1

0

0

1

说明:

因为逻辑和按位运算符的优先级低于其他算术和关系运算符,所以应将任何按位运算括在括号中以确保准确的执行。

数据类型

对于布尔值求反运算,结果的数据类型为 Boolean。对于按位求反运算,结果的数据类型与 expression 的数据类型一样。然而,如果表达式是 Decimal 类型,则结果为 Long 类型。

重载

Not 运算符可以被重载,这意味着当该运算符的操作数具有某个类或结构的类型时,该类或结构可以重新定义其行为。如果代码在这样的类或结构上使用此运算符,那么您一定要了解其重新定义的行为。有关更多信息,请参见运算符过程

示例

下面的示例使用 Not 运算符对 Boolean 表达式执行逻辑求反。结果是表示与表达式的值相反的 Boolean 值。

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = Not (a > b)
secondCheck = Not (b > a)

上面的示例分别产生结果 False 和 True。

下面的示例使用 Not 运算符对数值表达式的各个位执行逻辑求反。结果模式中的位被设置为操作数模式中的相应位的相反值,包括符号位。

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

上面的示例分别产生结果 -11、-9 和 -7。

请参见

概念

Visual Basic 中的逻辑运算符和位运算符

参考

逻辑/按位运算符

Visual Basic 中的运算符优先级

运算符(按功能列出)