Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Esegue la disgiunzione logica inclusiva a corto circuito su due espressioni.
Sintassi
result = expression1 OrElse expression2
Parti
result
Obbligatorio. Qualsiasi Boolean espressione.
expression1
Obbligatorio. Qualsiasi Boolean espressione.
expression2
Obbligatorio. Qualsiasi Boolean espressione.
Osservazioni:
Un'operazione logica viene detta corto circuito se il codice compilato può ignorare la valutazione di un'espressione a seconda del risultato di un'altra espressione. Se il risultato della prima espressione valutata determina il risultato finale dell'operazione, non è necessario valutare la seconda espressione, perché non può modificare il risultato finale. Il corto circuito può migliorare le prestazioni se l'espressione ignorata è complessa o se comporta chiamate di routine.
Se una o entrambe le espressioni restituiscono True, result è True. Nella tabella seguente viene illustrato come result viene determinato.
Se expression1 è |
Ed expression2 è |
Il valore di result è |
|---|---|---|
True |
(non valutato) | True |
False |
True |
True |
False |
False |
False |
Tipi di dati
L'operatore OrElse è definito solo per il tipo di dati booleano. Visual Basic converte ogni operando in base alle Boolean esigenze prima di valutare l'espressione. Se si assegna il risultato a un tipo numerico, Visual Basic lo converte da Boolean a tale tipo in modo che False diventi e True diventi 0-1.
Per altre informazioni, vedere Conversioni di tipi booleani.
Sovraccarico
L'operatore Or e l'operatore IsTrue possono essere sovraccaricati, il che significa che una classe o una struttura può ridefinirne il comportamento quando un operando ha il tipo di tale classe o struttura. L'overload degli Or operatori e IsTrue influisce sul comportamento dell'operatore OrElse . Se il codice usa OrElse su una classe o una struttura che esegue l'overload Or e IsTrue, assicurarsi di comprendere il comportamento ridefinito. Per altre informazioni, vedere Operator Procedures.
Esempio 1
Nell'esempio seguente viene usato l'operatore OrElse per eseguire la disgiunzione logica su due espressioni. Il risultato è un Boolean valore che indica se una delle due espressioni è true. Se la prima espressione è True, il secondo non viene valutato.
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
L'esempio precedente produce rispettivamente i risultati di True, Truee False . Nel calcolo di firstCheck, la seconda espressione non viene valutata perché la prima è già True. Tuttavia, la seconda espressione viene valutata nel calcolo di secondCheck.
Esempio 2
Nell'esempio seguente viene illustrata un'istruzione If...Then contenente due chiamate di routine. Se la prima chiamata restituisce True, la seconda routine non viene chiamata. Questo potrebbe produrre risultati imprevisti se la seconda procedura esegue attività importanti che devono essere sempre eseguite quando viene eseguita questa sezione del 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