Operatore Or (Visual Basic)

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

Sintassi

result = expression1 Or expression2  

Parti

result
Obbligatorio. Qualsiasi Boolean o espressione numerica. Per il confronto Boolean, result è la disgiunzione logica inclusiva di due valori Boolean. Per le operazioni bit per bit, result è un valore numerico che rappresenta la disgiunzione bit per bit inclusiva di due modelli di bit numerici.

expression1
Obbligatorio. Qualsiasi Boolean o espressione numerica.

expression2
Obbligatorio. Qualsiasi Boolean o espressione numerica.

Osservazioni:

Per il confronto Boolean, result è False se e solo se expression1 e expression2 restituiscono False. Nella tabella seguente viene illustrato come result viene determinato.

Se expression1 è E expression2 è Il valore di result è
True True True
True False True
False True True
False False False

Nota

In un confronto Boolean, l'operatore Or valuta sempre entrambe le espressioni, che possono includere l'esecuzione di chiamate di routine. L'operatore OrElse esegue il corto circuito, il che significa che se expression1 è True, expression2 non viene valutato.

Per le operazioni bit per bit, l'operatore Or esegue un confronto bit per bit dei bit di due espressioni numeriche e imposta il bit corrispondente in result in base alla tabella seguente.

Se il bit in expression1 è E il bi in expression2 è Il bit in result è
1 1 1
1 0 1
0 1 1
0 0 0

Nota

Poiché gli operatori logici e bit per bit hanno una precedenza inferiore rispetto ad altri operatori aritmetici e relazionali, tutte le operazioni bit per bit devono essere racchiuse tra parentesi per garantire un'esecuzione accurata.

Tipi di dati

Se gli operandi sono costituiti da un'espressione Boolean e da un'espressione numerica, Visual Basic converte l'espressione Boolean in un valore numerico (-1 per True e 0 per False) ed esegue un'operazione bit per bit.

Per un confronto Boolean, il tipo di dati del risultato è Boolean. Per un confronto bit per bit, il tipo di dati del risultato è un tipo numerico appropriato per i tipi di dati di expression1 e expression2. Vedere la tabella "Confronti relazionali e bit per bit" nei Tipi di dati dei risultati dell'operatore.

Overload

L'operatore Or può essere sottoposto a overload, il che significa che una classe o una struttura può ridefinirne il comportamento quando un operando ha il tipo di tale classe o struttura. Se il codice usa questo operatore in una classe o una struttura di questo tipo, assicurarsi di comprenderne il comportamento ridefinito. Per altre informazioni, vedere Operator Procedures.

Esempio 1

Nell'esempio seguente viene usato l'operatore Or per eseguire una disgiunzione logica inclusiva su 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

L'esempio precedente produce rispettivamente i risultati di True, True e False.

Esempio 2

Nell'esempio seguente viene usato l'operatore Or per eseguire la disgiunzione logica inclusiva sui singoli bit di due espressioni numeriche. Il bit nel criterio di risultato 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)

L'esempio precedente produce rispettivamente i risultati 10, 14 e 14.

Vedi anche