Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Realiza la disjunción lógica inclusiva de cortocircuito en dos expresiones.
Sintaxis
result = expression1 OrElse expression2
Partes
result
Obligatorio. Cualquier Boolean expresión.
expression1
Obligatorio. Cualquier Boolean expresión.
expression2
Obligatorio. Cualquier Boolean expresión.
Observaciones
Se dice que una operación lógica es cortocircuito si el código compilado puede omitir la evaluación de una expresión en función del resultado de otra expresión. Si el resultado de la primera expresión evaluada determina el resultado final de la operación, no es necesario evaluar la segunda expresión, ya que no puede cambiar el resultado final. El cortocircuito puede mejorar el rendimiento si la expresión omitida es compleja o si implica llamadas a procedimientos.
Si o ambas expresiones se evalúan como True, result es True. En la tabla siguiente se muestra cómo result se determina.
Si expression1 es |
Y expression2 es |
El valor de result es |
|---|---|---|
True |
(no evaluado) | True |
False |
True |
True |
False |
False |
False |
Tipos de datos
El OrElse operador solo se define para el tipo de datos booleano. Visual Basic convierte cada operando según sea necesario para Boolean antes de evaluar la expresión. Si asigna el resultado a un tipo numérico, Visual Basic lo convierte de Boolean a ese tipo, de tal forma que False se 0 convierte en y True se convierte en -1.
Para obtener más información, vea Conversiones de tipos booleanos.
Sobrecarga
El operador Or y el operador IsTrue se pueden sobrecargar, lo que significa que una clase o estructura puede redefinir su comportamiento cuando un operando tiene el tipo de esa clase o estructura. La sobrecarga de los Or operadores y IsTrue afecta al comportamiento del OrElse operador . Si el código usa OrElse en una clase o estructura que sobrecarga Or y IsTrue, asegúrese de comprender su comportamiento redefinido. Para obtener más información, vea Procedimientos de operador.
Ejemplo 1
En el ejemplo siguiente se usa el OrElse operador para realizar la disjunción lógica en dos expresiones. El resultado es un Boolean valor que representa si cualquiera de las dos expresiones es true. Si la primera expresión es True, no se evalúa la segunda.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b
En el ejemplo anterior se generan resultados de True, Truey False respectivamente. En el cálculo de firstCheck, la segunda expresión no se evalúa porque la primera ya Truees . Sin embargo, la segunda expresión se evalúa en el cálculo de secondCheck.
Ejemplo 2
En el ejemplo siguiente se muestra una Ifinstrucción ...Then que contiene dos llamadas a procedimiento. Si la primera llamada devuelve True, no se llama al segundo procedimiento. Esto podría producir resultados inesperados si el segundo procedimiento realiza tareas importantes que siempre deben realizarse cuando se ejecuta esta sección del código.
If testFunction(5) = True OrElse otherFunction(4) = True Then
' If testFunction(5) is True, otherFunction(4) is not called.
' Insert code to be executed.
End If