Compartilhar via


Operador OrElse (Visual Basic)

Exexuta disjunção lógica inclusiva de curto circuito (short-circuiting) em duas expressões.

result = expression1 OrElse expression2

Partes

  • result
    Obrigatório.Qualquer expressão Boolean.

  • expression1
    Obrigatório.Qualquer expressão Boolean.

  • expression2
    Obrigatório.Qualquer expressão Boolean.

Comentários

Uma operação lógica é chamada de short-circuiting se o código compilado pode ignorar a avaliação de uma expressão de acordo com o resultado da outra expressão.Se o resultado da primeira expressão avaliada determina o resultado final da operação, não será necessário para avaliar a segunda expressão, porque ela não pode alterar o resultado final.Usa short-circuiting pode melhorar o desempenho se a expressão ignorada é complexa, ou se ela envolve chamadas de procedimento.

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

Se expression1 está

E expression2 é

O valor do result é

True

(não avaliado)

True

False

True

True

False

False

False

Tipos de dados

O operador OrElse é definido apenas para o Tipo de dados Boolean (Visual Basic).Visual Basic converte cada operando conforme necessário para Boolean e executa a operação completamente em Boolean.Se você atribuir o resultado a um tipo numérico, Visual Basic converte do Boolean a esse tipo.Isso pode produzir um comportamento inesperado.Por exemplo, 5 OrElse 12 resulta em –1 quando convertido em Integer.

Sobrecarga

O Ou o operador (Visual Basic) e o Operador IsTrue (Visual Basic) podem ser sobrecarregados, o que significa que uma classe ou estrutura pode redefinir seus comportamentos quando um operando tem o tipo da sua classe ou estrutura.Sobrecarregar o operadores Or e IsTrue afeta o comportamento do operador OrElse .Se seu código usa OrElse em uma classe ou estrutura que sobrecarrega Or e IsTrue, certifique-se de que você entende seu comportamento redefinido.Para obter mais informações, consulte Procedimentos de operador (Visual Basic).

Exemplo

O exemplo seguinte usa o operador OrElse para executar uma disjunção lógica em duas expressões.O resultado é um valor Boolean que representa se uma das duas expressões são verdadeiras .Se a primeira expressão é 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 True, True e False respectivamente.No cálculo de firstCheck,a segunda expressão é avaliada não é avalidada porque a primeira já é True.No entanto, a segunda expressão é avaliada no cálculo de secondCheck.

O exemplo a seguir mostra uma instrução If... Then contendo duas chamadas de procedimento.Se a primeira chamada retornarTrue, o segundo procedimento não é chamado.Isso pode produzir resultados inesperados se o segundo procedimento executa tarefas importantes que sempre devem ser executadas quando esta seção do código é executado.

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

Referência

Operadores lógicos/bit a bit (Visual Basic)

Precedência de operadores em Visual Basic

Operadores listados pela funcionalidade (Visual Basic)

Ou o operador (Visual Basic)

Operador IsTrue (Visual Basic)

Conceitos

Operadores lógicos e bit a bit em Visual Basic