OrElse (Operador) (Visual Basic)
Realiza la disyunción lógica inclusiva de cortocircuito en dos expresiones.
Sintaxis
result = expression1 OrElse expression2
Partes
result
Obligatorio. Cualquier expresión Boolean .
expression1
Obligatorio. Cualquier expresión Boolean .
expression2
Obligatorio. Cualquier expresión Boolean .
Comentarios
Se dice que una operación lógica está cortocircuando 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 una 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 |
Tipo de datos
El OrElse operador solo se define para el tipo de datos booleano. Visual Basic convierte cada operando según sea necesario en Boolean antes de evaluar la expresión. Si asigna el resultado a un tipo numérico, Visual Basic lo convierte de a ese tipo, de modo que se Boolean convierte en y se convierte en False 0 True -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 volver a definir su comportamiento cuando un operando tiene el tipo de esa clase o estructura. La sobrecarga de Or los operadores y afecta al comportamiento del IsTrue OrElse operador. Si el código usa en una clase o estructura que sobrecarga y , asegúrese de OrElse que comprende su comportamiento Or IsTrue redefinido. Para obtener más información, consulta Operator Procedures.
Ejemplo 1
En el ejemplo siguiente se usa OrElse el operador para realizar disyunción lógica en dos expresiones. El resultado es un Boolean valor que representa si alguna de las dos expresiones es true. Si la primera expresión es True , la segunda no se evalúa.
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 los resultados True de True , y False respectivamente. En el cálculo de firstCheck , la segunda expresión no se evalúa porque la primera ya es True . Sin embargo, la segunda expresión se evalúa en el cálculo de secondCheck .
Ejemplo 2
En el ejemplo siguiente se muestra If una instrucción ... que contiene dos llamadas a Then procedimientos. Si la primera llamada devuelve , no se llama al True 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