Condividi tramite


Operatore OrElse (Visual Basic)

Esegue una disgiunzione logica inclusiva di corto circuito tra due espressioni.

result = expression1 OrElse expression2

Parti

  • result
    Obbligatoria. Qualsiasi espressione Boolean.

  • expression1
    Obbligatoria. Qualsiasi espressione Boolean.

  • expression2
    Obbligatoria. Qualsiasi espressione Boolean.

Note

Un'operazione logica viene definita di corto circuito se il codice compilato può evitare la valutazione di un'espressione sulla base del risultato di un'altra espressione. Se il risultato della prima espressione valutata determina il risultato finale dell'operazione, non sarà necessario valutare la seconda espressione, in quanto non potrà modificare il risultato finale. Il meccanismo di corto circuito può migliorare le prestazioni se l'espressione ignorata è complessa o se prevede anche chiamate di routine.

Se una o entrambe le espressioni restituiscono True, anche result sarà True. Nella tabella riportata di seguito viene illustrato come si determina il valore di result.

Se il parametro expression1 è

Ed expression2 è

Il valore di result sarà

True

(non valutato)

True

False

True

True

False

False

False

Tipi di dati

L'operatore OrElse è definito solo per il Tipo di dati Boolean (Visual Basic). Ciascun operando viene convertito, se necessario, in Boolean e l'operazione viene eseguita interamente in Boolean. Se si assegna il risultato a un tipo numerico, tale risultato viene convertito da Boolean nel tipo specificato. Questa operazione può determinare un comportamento imprevisto. Ad esempio, il risultato di 5 OrElse 12 è –1 se viene eseguita la conversione in Integer.

Overload

L'Operatore Or (Visual Basic) e l'Operatore IsTrue (Visual Basic) possono essere sottoposti a overload. In altri termini, una classe o una struttura può ridefinirne il comportamento quando un operando specifica il tipo di tale classe o struttura. L'esecuzione dell'overload degli operatori Or e IsTrue ha effetto sul comportamento dell'operatore OrElse. Se il codice utilizza OrElse su una classe o una struttura che esegue l'overload di Or e IsTrue, è importante comprendere il comportamento ridefinito da tali operatori. Per ulteriori informazioni, vedere Routine di operatore (Visual Basic).

Esempio

Nell'esempio riportato di seguito l'operatore OrElse viene utilizzato per eseguire la disgiunzione logica tra due espressioni. Il risultato è un valore Boolean che indica se una delle due espressioni è True. Se la prima espressione è True, la seconda non verrà valutata.

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

I risultati ottenuti dall'esempio precedente sono rispettivamente True, True e False. Nel calcolo di firstCheck la seconda espressione non viene valutata perché la prima è già True. La seconda espressione, tuttavia, viene valutata nel calcolo di secondCheck.

Nell'esempio riportato di seguito viene visualizzata un'istruzione If...Then contenente due chiamate di routine. Se la prima chiamata restituisce True, la seconda routine non verrà chiamata. Questa operazione può generare risultati imprevisti se la seconda routine esegue attività importanti che dovrebbero essere sempre eseguite durante l'esecuzione di questa sezione di codice.

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

Vedere anche

Riferimenti

Operatori logici e bit per bit (Visual Basic)

Precedenza tra gli operatori in Visual Basic

Elenco degli operatori per funzionalità (Visual Basic)

Operatore Or (Visual Basic)

Operatore IsTrue (Visual Basic)

Concetti

Operatori logici e bit per bit in Visual Basic