Operatore & (Riferimenti per C#)
Aggiornamento: novembre 2007
L'operatore & può essere utilizzato come operatore unario o binario.
Note
L'operatore unario & restituisce l'indirizzo dell'operando e richiede un contesto unsafe.
Gli operatori binari & sono già definiti per i tipi integrali e bool. Per i tipi integrali, l'operatore & calcola l'operatore AND logico bit per bit degli operandi. Per gli operandi bool, l'operatore & calcola l'operatore AND logico degli operandi. Il risultato sarà quindi true se e solo se entrambi gli operandi sono true.
L'operatore & valuta entrambi gli operatori indipendentemente dal valore del primo. Di seguito è riportato un esempio:
int i = 0;
if (false & ++i == 1)
{
// i is incremented, but the conditional
// expression evaluates to false, so
// this block does not execute.
}
I tipi definiti dall'utente possono eseguire l'overload dell'operatore & binario. Vedere operator. Le operazioni sui tipi integrali sono generalmente consentite sull'enumerazione. Quando si esegue l'overload di un operatore binario, viene eseguito in modo implicito anche l'overload dell'eventuale operatore di assegnazione corrispondente.
Esempio
class BitwiseAnd
{
static void Main()
{
Console.WriteLine(true & false); // logical and
Console.WriteLine(true & true); // logical and
Console.WriteLine("0x{0:x}", 0xf8 & 0x3f); // bitwise and
}
}
/*
Output:
False
True
0x38
*/