Partilhar via


Operador OrElse (Visual Basic)

Executa curto-circuito, incluindo disjunção lógica em duas expressões.

Sintaxe

result = expression1 OrElse expression2  

Partes

result
Obrigatório. Qualquer Boolean expressão.

expression1
Obrigatório. Qualquer Boolean expressão.

expression2
Obrigatório. Qualquer Boolean expressão.

Observações

Diz-se que uma operação lógica é um curto-circuito se o código compilado pode ignorar a avaliação de uma expressão dependendo do resultado de outra expressão. Se o resultado da primeira expressão avaliada determina o resultado final da operação, não há necessidade de avaliar a segunda expressão, porque não pode alterar o resultado final. O curto-circuito pode melhorar o desempenho se a expressão ignorada for complexa ou se envolver chamadas de procedimento.

Se uma ou ambas as expressões avaliarem a True, result é True. A tabela a seguir ilustra como result é determinado.

Se expression1 for E expression2 é O valor de result é
True (não avaliado) True
False True True
False False False

Tipos de Dados

O OrElse operador é definido apenas para o tipo de dados booleano. Visual Basic converte cada operando conforme necessário para Boolean antes de avaliar a expressão. Se você atribuir o resultado a um tipo numérico, o Visual Basic o converte de Boolean para esse tipo de tal forma que False se torna 0 e True se torna -1. Para obter mais informações, consulte Conversões de tipo booleano.

Sobrecarga

O operador Or e o operador IsTrue podem estar sobrecarregados, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo dessa classe ou estrutura. A sobrecarga dos Or operadores afeta IsTrue o comportamento do OrElse operador. Se o seu código usa OrElse em uma classe ou estrutura que sobrecarrega Or e IsTrue, certifique-se de entender seu comportamento redefinido. Para obter mais informações, consulte Procedimentos do operador.

Exemplo 1

O exemplo a seguir usa o operador para executar a OrElse disjunção lógica em duas expressões. O resultado é um Boolean valor que representa se uma das duas expressões é verdadeira. Se a primeira expressão for True, a segunda não será avaliada.

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

O exemplo anterior produz resultados de True, Truee False respectivamente. No cálculo de firstCheck, a segunda expressão não é avaliada porque a primeira já Trueé . No entanto, a segunda expressão é avaliada no cálculo de secondCheck.

Exemplo 2

O exemplo a seguir mostra uma Ifinstrução ...Then contendo duas chamadas de procedimento. Se a primeira chamada retornar True, o segundo procedimento não será chamado. Isso pode produzir resultados inesperados se o segundo procedimento executar tarefas importantes que sempre devem ser executadas quando esta seção do código é executada.

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

Consulte também