& Operador (referência de C#)
A & operador pode funcionar como um unário ou de um operador binário.
Comentários
O operador unário & o operador retorna o endereço do seu operando (requer inseguros contexto).
Binário & operadores são predefinidos para os tipos integrais e bool. Para tipos integrais, & Calcula o e lógico bit a bit dos operandos. Para bool operandos, & Calcula o e lógico dos operandos; ou seja, o resultado é true se e somente se ambos os operandos são true.
O & operador é avaliado em ambos os operadores, independentemente da primeira de um valor. Por exemplo:
int i = 0;
if (false & ++i == 1)
{
// i is incremented, but the conditional
// expression evaluates to false, so
// this block does not execute.
}
Tipos definidos pelo usuário podem sobrecarregar o binário & operador (consulte operador). Geralmente, as operações em tipos integrais são permitidas na enumeração. Se houver, quando um operador binário está sobrecarregado, o operador de atribuição correspondente, também será implicitamente sobrecarregado.
Exemplo
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
*/