&, opérateur (référence C#)
L'opérateur & peut fonctionner comme opérateur unaire ou binaire.
Notes
L'opérateur & unaire retourne l'adresse de son opérande (requiert un contexte unsafe).
Les opérateurs & binaires sont prédéfinis pour les types intégraux et bool. Pour les types intégraux, & effectue l'opération logique de bits AND sur les opérandes. Pour les opérandes bool, & effectue l'opération logique AND sur les opérandes. En conséquence, le résultat est true uniquement si les deux opérandes ont la valeur true.
L'opérateur & évalue les deux opérateurs indépendamment de la valeur du premier. Par exemple :
int i = 0;
if (false & ++i == 1)
{
// i is incremented, but the conditional
// expression evaluates to false, so
// this block does not execute.
}
Les types définis par l'utilisateur peuvent surcharger l'opérateur & binaire (consultez operator). Les opérations sur les types intégraux sont en général autorisées sur énumération. Lorsqu'un opérateur binaire est surchargé, l'opérateur d'assignation correspondant (s'il y en a un) est, lui aussi, implicitement surchargé.
Exemple
class BitwiseAnd
{
static void Main()
{
// The following two statements perform logical ANDs.
Console.WriteLine(true & false);
Console.WriteLine(true & true);
// The following line performs a bitwise AND of F8 (1111 1000) and
// 3F (0011 1111).
// 1111 1000
// 0011 1111
// ---------
// 0011 1000 or 38
Console.WriteLine("0x{0:x}", 0xf8 & 0x3f);
}
}
// Output:
// False
// True
// 0x38