Not 运算符 (Visual Basic)

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

语法

result = Not expression  

部件

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

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

注解

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

如果 expression 值为result
True False
False True

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

如果位为expression 位为result
1 0
0 1

注释

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

请注意,如果 Not someStr?.Contains("some string") 计算结果为 Boolean? 其值为 nothingHasValue=false计算的任何其他值,则 else 运行该块。 计算遵循 SQL 计算,其中 null/nothing 不等于任何内容,甚至不等于其他 null/nothing。

数据类型

对于布尔求反,结果的数据类型为 Boolean。 对于按位求反,结果数据类型与 <a0/> 的数据类型相同。 但是,如果表达式为 Decimal,则结果为 Long

重载

Not可以重载运算符,这意味着当类或结构具有该类或结构的类型时,类或结构可以重新定义其行为。 如果代码对此类或结构使用此运算符,请确保了解其重新定义的行为。 有关详细信息,请参阅 运算符过程

示例 1

以下示例使用 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)

前面的示例分别生成结果 FalseTrue结果。

示例 2

下面的示例使用 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 的结果。

另请参阅