Compartilhar via


Operador Not (Visual Basic)

Executa uma negação lógica em uma expressão Boolean ou uma negação bit a bit em uma expressão numérica.

Sintaxe

result = Not expression  

Partes

result
Obrigatórios. Qualquer Boolean ou expressão numérica.

expression
Obrigatórios. Qualquer Boolean ou expressão numérica.

Comentários

Para expressões Boolean, a tabela a seguir ilustra como result é determinado.

Se expression for O valor de result será
True False
False True

Para expressões numéricas, o operador Not inverte os valores de bit de qualquer expressão numérica e define o bit correspondente em result de acordo com a tabela a seguir.

Se o bit em expression for O bit em result será
1 0
0 1

Observação

Como os operadores lógicos e bit a bit têm uma precedência menor do que outros operadores aritméticos e relacionais, todas as operações bit a bit devem ser colocadas entre parênteses para garantir execução precisa.

Observe que, se Not someStr?.Contains("some string") ou qualquer outro valor avaliado como Boolean? tiver o valor de nothing ou HasValue=false, o bloco else será executado. A avaliação segue a avaliação do SQL em que nulo/nada não é igual a nada, nem mesmo outro nulo/nada.

Data Types

Para uma negação booliana, o tipo de dados do resultado será Boolean. Para uma negação bit a bit, o tipo de dados de resultado é o mesmo que o de expression. No entanto, se a expressão for Decimal, o resultado será Long.

Sobrecarga

O operador Not pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando seu operando tem o tipo dessa classe ou estrutura. Se o código usar esse operador em uma classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, confira Procedimentos de operador.

Exemplo 1

O exemplo a seguir usa o operador Not para executar negação lógica em uma expressão Boolean. O resultado é um valor Boolean que representa o inverso do valor da expressão.

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)

O exemplo anterior produz resultados de False e True, respectivamente.

Exemplo 2

O exemplo a seguir usa o operador Not para executar a negação lógica nos bits individuais de uma expressão numérica. O bit no padrão de resultado é definido como o inverso do bit correspondente no padrão de operando, incluindo o bit de sinal.

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)

O exemplo anterior produz resultados de –11, –9 e –7, respectivamente.

Confira também