Operador & (Referencia de C#)
Actualización: noviembre 2007
El operador & puede funcionar como operador unario o binario.
Comentarios
El operador & unario devuelve la dirección de memoria de su operando (requiere un contexto unsafe).
Los operadores & binarios están predefinidos para los tipos integrales y bool. Para tipos integrales, & calcula la operación AND bit a bit lógica de sus operandos. Para operandos de tipo bool, & calcula la operación lógica AND de sus operandos; es decir, el resultado es true si, y sólo si ambos operandos son true.
El operador & evalúa ambos operadores sin tener en cuenta el valor del primero. Por ejemplo:
int i = 0;
if (false & ++i == 1)
{
// i is incremented, but the conditional
// expression evaluates to false, so
// this block does not execute.
}
Los tipos definidos por el usuario pueden sobrecargar el operador binario & (vea operator (Referencia de C#)). Las operaciones en tipos integrales se suelen permitir en enumeraciones. Cuando se sobrecarga un operador binario, el operador de asignación correspondiente, si existe, también se sobrecarga de modo implícito.
Ejemplo
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
*/