Condividi tramite


Operatore Or (Visual Basic)

Esegue una disgiunzione logica tra due espressioni Boolean oppure una disgiunzione bit per bit tra due espressioni numeriche.

result = expression1 Or expression2

Parti

  • result
    Obbligatoria. Qualsiasi espressione Boolean o numerica. Nel caso di un confronto tra valori Boolean, result rappresenta la disgiunzione logica inclusiva di due valori Boolean. Nel caso di operazioni bit per bit, result è invece un valore numerico che rappresenta la disgiunzione bit per bit inclusiva di due schemi di bit numerici.

  • expression1
    Obbligatoria. Qualsiasi espressione Boolean o numerica.

  • expression2
    Obbligatoria. Qualsiasi espressione Boolean o numerica.

Note

Per un confronto tra valori Boolean, result è False soltanto se expression1 ed expression2 restituiscono entrambi False. 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

True

True

True

False

True

False

True

True

False

False

False

Nota

In un confronto tra valori Boolean l'operatore Or valuta sempre entrambe le espressioni, inclusa l'eventuale esecuzione di chiamate di routine. L'Operatore OrElse (Visual Basic) esegue un'operazione di corto circuito. In altri termini, se expression1 è True, expression2 non verrà valutata.

Nelle operazioni bit per bit l'operatore Or esegue un confronto bit per bit tra bit che occupano la stessa posizione in due espressioni numeriche e imposta il bit corrispondente in result in base ai valori riportati nella seguente tabella.

Se il bit nel parametro expression1 è

E il bit in expression2 è

Il bit in result sarà

1

1

1

1

0

1

0

1

1

0

0

0

Nota

Poiché il livello di precedenza degli operatori logici e bit per bit è inferiore rispetto a quello degli operatori aritmetici e relazionali, è necessario racchiudere le operazioni bit per bit tra parentesi per garantire un'esecuzione accurata.

Tipi di dati

Se gli operandi sono costituiti da un'espressione Boolean e un'espressione numerica, l'espressione Boolean verrà convertita in un valore numerico (–1 per True e 0 per False) e verrà eseguita un'operazione bit per bit.

Nel caso di un confronto tra valori Boolean il tipo di dati del risultato sarà Boolean, mentre per un confronto bit per bit il tipo di dati del risultato sarà un tipo numerico appropriato ai tipi di dati di expression1 e expression2. Per informazioni, vedere la tabella "Confronti relazionali e bit per bit" in Tipi di dati dei risultati degli operatori (Visual Basic).

Overload

L'operatore Or può essere sottoposto 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. Se il codice utilizza l'operatore su una classe o una struttura di questo tipo, è importante comprendere il comportamento ridefinito di tale operatore. Per ulteriori informazioni, vedere Routine di operatore (Visual Basic).

Esempio

Nell'esempio riportato di seguito l'operatore Or viene utilizzato per eseguire una disgiunzione logica inclusiva tra due espressioni. Il risultato è un valore Boolean che indica se una delle due espressioni è True.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Or b > c
secondCheck = b > a Or b > c
thirdCheck = b > a Or c > b

I risultati ottenuti dall'esempio precedente sono rispettivamente True, True e False.

Nell'esempio riportato di seguito l'operatore Or viene utilizzato per eseguire la disgiunzione logica inclusiva dei singoli bit di due espressioni numeriche. Il bit nello schema dei risultati viene impostato se uno dei bit corrispondenti negli operandi è impostato su 1.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Or b)
secondPattern = (a Or c)
thirdPattern = (b Or c)

I risultati ottenuti dall'esempio precedente sono rispettivamente 10, 14 e 14.

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 OrElse (Visual Basic)

Concetti

Operatori logici e bit per bit in Visual Basic