Condividi tramite


Operatore Not (Visual Basic)

Esegue una negazione logica di un'espressione Boolean oppure una negazione bit per bit di un'espressione numerica.

Sintassi

result = Not expression  

Parti

result
Obbligatorio. Qualsiasi Boolean o espressione numerica.

expression
Obbligatorio. Qualsiasi Boolean o espressione numerica.

Osservazioni:

Per le espressioni Boolean, nella tabella seguente viene illustrato come viene determinato result.

Se expression è Il valore di result è
True False
False True

Per le espressioni numeriche, l'operatore Not inverte i valori di bit di qualsiasi espressione numerica e imposta il bit corrispondente inresult in base alla tabella seguente.

Se il bit in expression è Il bit in result è
1 0
0 1

Nota

Poiché gli operatori logici e bit per bit hanno una precedenza inferiore rispetto ad altri operatori aritmetici e relazionali, tutte le operazioni bit per bit devono essere racchiuse tra parentesi per garantire un'esecuzione accurata.

Si noti che se Not someStr?.Contains("some string") o qualsiasi altro valore valutato come Boolean? ha il valore di nothing o HasValue=false, il blocco else viene eseguito. La valutazione segue la valutazione SQL in cui null/nothing non è uguale a nulla, neanche a un altro null/nothing.

Tipi di dati

Per una negazione booleana, il tipo di dati del risultato è Boolean. Per una negazione bit per bit, il tipo di dati dei risultati è uguale a quello di expression. Tuttavia, se l'espressione è Decimal, il risultato è Long.

Overload

L'operatore Not può essere sottoposto a overload, il che significa che una classe o una struttura può ridefinirne il comportamento quando il suo operando ha il tipo di tale classe o struttura. Se il codice usa questo operatore in una classe o una struttura di questo tipo, assicurarsi di comprenderne il comportamento ridefinito. Per altre informazioni, vedere Operator Procedures.

Esempio 1

Nell'esempio seguente viene usato l'operatore Not per eseguire la negazione logica in un'espressione Boolean. Il risultato è un valore Boolean che rappresenta il contrario del valore dell'espressione.

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)

L'esempio precedente produce rispettivamente i risultati di False e True.

Esempio 2

Nell'esempio seguente viene usato l'operatore Not per eseguire la negazione logica dei singoli bit di un'espressione numerica. Il bit nel criterio di risultato viene impostato sul contrario del bit corrispondente nel modello di operando, incluso il bit del segno.

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)

L'esempio precedente produce rispettivamente i risultati –11, –9 e –7.

Vedi anche