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
ブロックが実行されることに注意してください。 この評価は、null/nothing が何も等しくなく、別の null/何も等しくない SQL 評価に従います。
データ型
ブール否定の場合、結果のデータ型は Boolean
。 ビットごとの否定の場合、結果のデータ型は 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)
前の例では、それぞれ 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 の結果が生成されます。
こちらも参照ください
.NET