Compartir a través de


Or (Operador, Visual Basic)

Actualización: noviembre 2007

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

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 modelos 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 Boolean, result es False si y sólo si expression1 y expression2 se evalúan como False. La tabla siguiente ilustra cómo se determina el argumento 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 evalúa siempre las dos expresiones, lo que podría incluir realizar llamadas a procedimientos. OrElse (Operador) realiza un cortocircuito, lo que significa que si expression1 es True, no se evalúa expression2.

Para operaciones bit a bit, el operador Or realiza una comparación bit a bit de los bits ubicados de manera idéntica en dos expresiones numéricas y establece el bit correspondiente en result de acuerdo con la siguiente tabla.

Si el bit de expression1 es...

Y el bit de expression2 es...

El bit de result es...

1

1

1

1

0

1

0

1

1

0

0

0

Nota:

Al tener los operadores lógicos y bit a bit una prioridad inferior a la de otros operadores aritméticos y relacionales, las operaciones bit a bit deben efectuarse entre paréntesis para garantizar una correcta ejecución.

Tipos de datos

Si los operandos constan de una expresión Boolean y una expresión numérica, Visual Basic convierte la expresión Boolean a 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. Vea la tabla "Comparaciones relacionales y bit a bit" en Tipos de datos de resultados de operador.

Sobrecarga

El operador Or se puede sobrecargar, lo que significa que una clase o una estructura pueden definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. Si el código utiliza este operador en una clase o estructura de este tipo, asegúrese de conocer su comportamiento redefinido. Para obtener más información, vea Procedimientos de operador.

Ejemplo

En el ejemplo siguiente se usa el operador Or para realizar una disyunción lógica inclusiva entre dos expresiones. El resultado será un valor de tipo Boolean que indicará si alguna 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

El ejemplo anterior genera unos resultados de True, True y False, respectivamente.

En el ejemplo siguiente se usa el operador Or para realizar una disyunción lógica inclusiva entre cada uno de los bits de dos expresiones numéricas. El bit en el modelo resultante se establece si uno de los bits correspondientes de los operandos se ha establecido 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)

El ejemplo anterior genera unos resultados de 10, 14 y 14, respectivamente.

Vea también

Conceptos

Operadores lógicos y bit a bit en Visual Basic

Referencia

Operadores lógicos y operadores bit a bit

Prioridad de operador en Visual Basic

Operadores enumerados por funcionalidad

OrElse (Operador)