在表達式上 Boolean 執行邏輯否定,或對數值表達式執行位否定。
語法
result = Not expression
組件
result
必須的。 任何 Boolean 或數值表達式。
expression
必須的。 任何 Boolean 或數值表達式。
備註
對於 Boolean 表達式,下表說明如何 result 判斷。
如果 expression 為 |
的值 result 為 |
|---|---|
True |
False |
False |
True |
針對數值表達式, Not 運算符會反轉任何數值表達式的位值,並根據下表在 中 result 設定對應的位。
如果 bit in expression 為 |
中的 result 位為 |
|---|---|
| 1 | 0 |
| 0 | 1 |
備註
由於邏輯和位運算子的優先順序低於其他算術和關係運算符,因此任何位運算都應該以括弧括住,以確保正確執行。
請注意,如果 Not someStr?.Contains("some string") 或 評估為 Boolean? 的任何其他值具有 或HasValue=false的值nothing,則會else執行 區塊。 評估會遵循 SQL 評估,其中 null/nothing 不等於任何專案,甚至不等於另一個 Null/nothing。
數據類型
對於布爾值否定,結果的數據類型為 Boolean。 若為位否定,結果數據類型與的數據類型相同 expression。 不過,如果 expression 是 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)
上述範例分別會產生和True的結果False。
範例 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 的結果。