Not (Operador, Visual Basic)

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

Sintaxis

result = Not expression  

Partes

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

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

Comentarios

Para las expresiones Boolean, en la tabla siguiente se muestra cómo se determina result.

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

En el caso de las expresiones numéricas, el operador Not invite los valores de bits para 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 se deben incluir 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úe como Boolean? tiene el valor de nothing o HasValue=false, el bloque else se ejecutará. La evaluación sigue la evaluación de SQL donde null/nothing no es igual a nada, ni siquiera a otro null/nothing.

Tipo de datos

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

Sobrecarga

El operador Not puede sobrecargarse, 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 que comprende su comportamiento redefinido. Para obtener más información, consulta Operator Procedures.

Ejemplo 1

En el ejemplo siguiente, se usa el operador Not para realizar una negación lógica en una expresión Boolean. El resultado es un valor Boolean que representa el valor inverso 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 operador Not 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 el valor inverso 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