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