The & operator can function as either a unary or a binary operator.
The unary & operator returns the address of its operand (requires unsafe context).
Binary & operators are predefined for the integral types and bool. For integral types, & computes the bitwise AND of its operands. For bool operands, & computes the logical AND of its operands; that is, the result is true if and only if both its operands are true.
User-defined types can overload the binary & operator (see operator).
using System; class Test { public static void Main() { Console.WriteLine(true & false); // logical and Console.WriteLine(true & true); // logical and Console.WriteLine("0x{0:x}", 0xf8 & 0x3f); // bitwise and } }
False True 0x38
C# Operators | CLR 7.6.6 Address operator | CLR 7.10 Logical operators