Not 演算子 (Visual Basic)
Boolean
式の場合は論理否定、数値式の場合はビットごとの否定を求めます。
構文
result = Not expression
指定項目
result
必須です。 任意の Boolean
または数値式。
expression
必須です。 任意の Boolean
または数値式。
Remarks
次の表は、Boolean
式で、result
がどのように決定されるかを示しています。
expression が次の場合 |
result の値は次のようになります |
---|---|
True |
False |
False |
True |
数値式の場合、Not
演算子は、次の表に従って数値式のビット値を反転させ、result
に対応するビットを設定します。
expression 内のビットが次の場合 |
result 内のビットは次のようになります |
---|---|
1 | 0 |
0 | 1 |
Note
論理演算子とビット演算子は、他の算術演算子および関係演算子より優先順位が低いので、正確な実行を保証するために、ビットごとの演算はかっこで囲む必要があります。
Boolean?
として評価される Not someStr?.Contains("some string")
またはその他の値が nothing
または HasValue=false
の値を持つ場合は、else
ブロックが実行されることに注意してください。 この評価は、null/nothing が何も等しくなく、別の null/nothing とも等しくない SQL 評価に従います。
データの種類
ブール値の否定の場合、結果のデータ型は Boolean
になります。 ビットごとの否定の場合、結果のデータ型は expression
のデータ型と同じになります。 ただし、式が Decimal
の場合、結果は Long
になります。
オーバーロード
Not
演算子は "オーバーロード" できます。つまり、オペランドがあるクラスまたは構造体の型を持っているときに、そのクラスまたは構造体はその動作を再定義できます。 コードで、そのようなクラスまたは構造体に対してこの演算子が使用される場合は、再定義された動作を理解していることを確認してください。 詳細については、「 Operator Procedures」を参照してください。
例 1
次の例では、Boolean
式で Not
演算子を使用して論理否定を実行しています。 この結果は、式の値の反転を表す 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