对 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?
其值为 nothing
或 HasValue=false
计算的任何其他值,则 else
运行该块。 计算遵循 SQL 计算,其中 null/nothing 不等于任何内容,甚至不等于其他 null/nothing。
数据类型
对于布尔求反,结果的数据类型为 Boolean
。 对于按位求反,结果数据类型与 <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)
前面的示例分别生成结果 False
和 True
结果。
示例 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 的结果。