Compartir a través de


Operador Not (Visual Basic)

Realiza negación lógica en una Boolean expresión o negación bit a bit en una expresión numérica.

Sintaxis

result = Not expression  

Partes

result
Obligatorio. Cualquier Boolean expresión numérica o .

expression
Obligatorio. Cualquier Boolean expresión numérica o .

Observaciones

En Boolean el caso de las expresiones, en la tabla siguiente se muestra cómo result se determina.

Si expression es El valor de result es
True False
False True

Para las expresiones numéricas, el Not operador invierte los valores de bits de cualquier expresión numérica y establece el bit correspondiente en result según la tabla siguiente.

Si el bit en expression es El bit en result es
1 0
0 1

Nota:

Dado que los operadores lógicos y bit a bit tienen una prioridad menor que otros operadores aritméticos y relacionales, las operaciones bit a bit deben incluirse entre paréntesis para garantizar una ejecución precisa.

Tenga en cuenta que si Not someStr?.Contains("some string") o cualquier otro valor que se evalúa como Boolean? tiene el valor de nothing o HasValue=false, se ejecuta el else bloque . La evaluación sigue la evaluación de SQL en la que null/nothing no es igual a nada, ni siquiera a otro null/nothing.

Tipos de datos

Para una negación booleana, el tipo de datos del resultado es Boolean. Para una negación bit a bit, el tipo de datos de resultado es el mismo que el de expression. Sin embargo, si expression es Decimal, el resultado es Long.

Sobrecarga

El Not operador se puede sobrecargar, lo que significa que una clase o estructura puede redefinir su comportamiento cuando su operando tiene el tipo de esa clase o estructura. Si el código usa este operador en una clase o estructura de este tipo, asegúrese de comprender su comportamiento redefinido. Para obtener más información, vea Procedimientos de operador.

Ejemplo 1

En el ejemplo siguiente se usa el Not operador para realizar negación lógica en una Boolean expresión. El resultado es un Boolean valor que representa la inversa del valor de la expresión.

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)

En el ejemplo anterior se generan resultados de False y True, respectivamente.

Ejemplo 2

En el ejemplo siguiente se usa el Not operador para realizar la negación lógica de los bits individuales de una expresión numérica. El bit del patrón de resultado se establece en la inversa del bit correspondiente en el patrón de operando, incluido el bit de signo.

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)

En el ejemplo anterior se generan resultados de –11, –9 y –7, respectivamente.

Consulte también