Оператор & (Справочник по C#)

Оператор & может функционировать как унарный или как бинарный оператор.

Заметки

Унарный оператор & возвращает адрес своего операнда (требуется небезопасный контекст).

Бинарные операторы & являются предопределенными для целых типов и bool. Для целых типов оператор & выполняет битовую операцию логического умножения операндов. Для операндов bool оператор & выполняет операцию логического умножения операндов, то есть, если один или оба оператора — true, результатом будет являться значение true.

Оператор & вычисляет оба оператора независимо от значения первого из них. Например:

int i = 0;
if (false & ++i == 1)
{
    // i is incremented, but the conditional 
    // expression evaluates to false, so 
    // this block does not execute.
}

Типы, определенные пользователем, могут вызвать перегрузку бинарного оператора & (см оператор). Операции над целыми типами обычно разрешены в перечислениях. Если бинарный оператор перегружен, соответствующий оператор присваивания (если таковой имеется), также будет явно перегружен.

Пример

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

См. также

Ссылки

Операторы C#

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Справочник по C#