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

Обновлен: Ноябрь 2007

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

Заметки

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

Бинарные операторы & являются предопределенными для целых типов и 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()
    {
        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
*/

См. также

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

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

Ссылки

Операторы C#

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

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