Operatore And (Visual Basic)
Esegue una congiunzione logica tra due espressioni Boolean oppure una congiunzione bit per bit tra due espressioni numeriche.
result = expression1 And expression2
Parti
result
Obbligatorio. Qualsiasi espressione Boolean o numerica. Nel caso di un confronto tra valori booleani, result rappresenta la congiunzione logica di due valori Boolean. Nel caso di operazioni bit per bit, result è invece un valore numerico che rappresenta la congiunzione bit per bit di due schemi di bit numerici.expression1
Obbligatorio. Qualsiasi espressione Boolean o numerica.expression2
Obbligatorio. Qualsiasi espressione Boolean o numerica.
Note
Per un confronto tra valori booleani, result è True soltanto se expression1 ed expression2 restituiscono entrambi True. Nella tabella riportata di seguito viene illustrato come si determina il valore di result.
Se expression1 è |
Ed expression2 è |
Il valore di result sarà |
---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
Nota
In un confronto tra valori booleani l'operatore And valuta sempre entrambe le espressioni, inclusa l'eventuale esecuzione di chiamate di routine.L'Operatore AndAlso (Visual Basic) esegue un'operazione di corto circuito. In altri termini, se expression1 è False, expression2 non verrà valutata.
Se applicato a valori numerici, l'operatore And 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 |
0 |
0 |
1 |
0 |
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 tra parentesi le operazioni bit per bit per garantire un risultato accurato.
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 booleani 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).
Nota
L'operatore And 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 And viene utilizzato per eseguire una congiunzione logica tra due espressioni. Il risultato è un valore Boolean che indica se entrambe le espressioni sono True.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = a > b And b > c
secondCheck = b > a And b > c
I risultati ottenuti dall'esempio precedente sono rispettivamente True e False.
Nell'esempio riportato di seguito l'operatore And viene utilizzato per eseguire la congiunzione logica tra i singoli bit di due espressioni numeriche. Il bit nello schema dei risultati viene impostato se i bit corrispondenti negli operandi sono entrambi impostati 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 And b)
secondPattern = (a And c)
thirdPattern = (b And c)
I risultati ottenuti dall'esempio precedente sono rispettivamente 8, 2 e 0.
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 AndAlso (Visual Basic)