Or (Operador, Visual Basic)

Realiza una disyunción lógica entre dos expresiones Boolean o una disyunción bit a bit entre dos expresiones numéricas.

Sintaxis

result = expression1 Or expression2  

Partes

result
Obligatorio. Cualquier expresión numérica o de tipo Boolean. Para la comparación Boolean, result es la disyunción lógica inclusiva de dos valores Boolean. Para las operaciones bit a bit, result es un valor numérico que representa la disyunción bit a bit inclusiva de dos patrones de bit numérico.

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 Boolean, result es False si y solo tanto expression1 como expression2 evalúan como False. En la tabla siguiente se muestra cómo se determina result.

Si expression1 es Y expression2 es El valor de result es
True True True
True False True
False True True
False False False

Nota

En una comparación Boolean, el operador Or siempre evalúa ambas expresiones, lo que podría incluir la realización de llamadas a procedimientos. El operador OrElse realiza un cortocircuito, lo que significa que si expression1 es True, expression2 no se evalúa.

Para las operaciones bit a bit, el operador Or realiza una comparación bit a bit de los bits colocados de forma idéntica en dos expresiones numéricas y establece el bit correspondiente en result según la tabla siguiente.

Si el bit en expression1 es Y el bit en expression2 es El bit en result es
1 1 1
1 0 1
0 1 1
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 se deben incluir entre paréntesis para garantizar una ejecución precisa.

Tipo de datos

Si los operandos constan de una expresión Boolean y una expresión numérica, Visual Basic convierte la expresión Boolean en un valor numérico (–1 para True y 0 para False) y realiza una operación bit a bit.

Para una comparación Boolean, el tipo de datos del resultado es Boolean. Para una comparación bit a bit, el tipo de datos del resultado es un tipo numérico adecuado para los tipos de datos de expression1 y expression2. Consulte la tabla "Comparaciones relacionales y bit a bit" en Tipos de datos de resultados de operador.

Sobrecarga

El operador Or puede sobrecargarse, lo que significa que una clase o estructura puede redefinir su comportamiento cuando un 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 Or para realizar una disyunción lógica inclusiva en dos expresiones. El resultado es un valor Boolean que representa si cualquiera de las dos expresiones es True.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Or b > c
secondCheck = b > a Or b > c
thirdCheck = b > a Or c > b

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

Ejemplo 2

En el ejemplo siguiente se usa el operador Or para realizar disyunciones lógicas inclusivas en los bits individuales de dos expresiones numéricas. El bit del patrón de resultado se establece si cualquiera de los bits correspondientes de los operandos se establece 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 Or b)
secondPattern = (a Or c)
thirdPattern = (b Or c)

En el ejemplo anterior se generan los resultados de 10, 14 y 14, respectivamente.

Consulte también