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。 若為位元否定,結果資料型別會與 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)

上述範例分別會產生 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 的結果。

另請參閱