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?
的任何其他值具有 nothing
或 HasValue=false
的值,則會執行 else
區塊。 評估會遵循 SQL 評估,其中 null/nothing 不等於任何項目,甚至不等於另一個 null/nothing。
資料類型
對於布林值否定,結果的資料型別是 Boolean
。 若為位元否定,結果資料型別會與 expression
的資料型別相同。 不過,如果運算式為 Decimal
,則結果會是 Long
。
多載化
Not
運算子可以多載,這表示當其運算元具有某個類別或結構的型別時,該類別或結構就可重新定義其行為。 如果您的程式碼在這種類別或結構上使用此運算子,請務必了解其重新定義的行為。 如需詳細資訊,請參閱 Operator Procedures。
範例 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 的結果。