And (Operador, Visual Basic)
Realiza una conjunción lógica en dos Boolean expresiones o una conjunción bit a bit en dos expresiones numéricas.
Sintaxis
result = expression1 And expression2
Partes
result
Obligatorio. Cualquier expresión numérica o de tipo Boolean. Para la comparación booleana, result es la conjunción lógica de dos Boolean valores. Para las operaciones bit a bit, result es un valor numérico que representa la conjunción bit a bit de dos patrones de bits numéricos.
expression1
Obligatorio. Cualquier expresión numérica o de tipo Boolean.
expression2
Obligatorio. Cualquier expresión numérica o de tipo Boolean.
Comentarios
Para la comparación result booleana, True es si y solo si y se expression1 expression2 evalúan como True . En la tabla siguiente se muestra cómo result se determina .
Si expression1 es |
Y expression2 es |
El valor de result es |
|---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
Nota
En una comparación booleana, el And operador siempre evalúa ambas expresiones, lo que podría incluir realizar llamadas a procedimientos. El operador AndAlso realiza un cortocircuito, lo que significa que, si expression1 es , no se False expression2 evalúa.
Cuando se aplica a valores numéricos, el operador realiza una comparación bit a bit de bits con una posición idéntica en dos expresiones numéricas y establece el bit correspondiente en según And result la tabla siguiente.
Si bit in expression1 es |
Y bit in expression2 es |
El bit de result es |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
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 resultados precisos.
Tipo de datos
Si los operandos constan de una expresión y una expresión numérica, Visual Basic convierte la expresión en un valor numérico (–1 para y 0 para ) y realiza una operación Boolean Boolean bit a True False bit.
Para una comparación booleana, el tipo de datos del resultado es Boolean . Para una comparación bit a bit, el tipo de datos de resultado es un tipo numérico adecuado para los tipos de datos de expression1 y expression2 . Vea la tabla "Comparaciones relacionales y bit a bit" en Tipos de datos de resultados del operador.
Nota
El And operador se puede sobrecargar, lo que significa que una clase o estructura puede volver a definir su comportamiento cuando un operando tiene el tipo de esa clase o estructura. Si el código usa este operador en este tipo de clase o estructura, 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 And el operador para realizar una conjunción lógica en dos expresiones. El resultado es un Boolean valor que representa si ambas expresiones son True .
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = a > b And b > c
secondCheck = b > a And b > c
En el ejemplo anterior se generan los resultados True de y False , respectivamente.
Ejemplo 2
En el ejemplo siguiente se usa And el operador para realizar la conjunción lógica en los bits individuales de dos expresiones numéricas. El bit del patrón de resultado se establece si los bits correspondientes de los operandos están establecidos en 1.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a And b)
secondPattern = (a And c)
thirdPattern = (b And c)
En el ejemplo anterior se generan resultados de 8, 2 y 0, respectivamente.