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.