Оператор && (справочник по C#)
Обновлен: Ноябрь 2007
Условный оператор AND (&&) выполняет логическое AND своих операндов типа bool, но вычисляет только второй операнд при необходимости.
Заметки
Операция
x && y
соответствует операции
x & y
за исключением того, что если x имеет значение false, то y не вычисляется (поскольку операция И будет иметь значение false вне зависимости от значения y). Это называется сокращенным вычислением.
Оператор условного AND не может быть перегружен, но перегрузки регулярных логических операторов и операторов true и false могут, с некоторыми ограничениями, считаться перегрузками условных логических операторов.
Пример
В следующем примере выражение с && вычисляет только первый операнд.
class LogicalAnd
{
static bool Method1()
{
Console.WriteLine("Method1 called");
return false;
}
static bool Method2()
{
Console.WriteLine("Method2 called");
return true;
}
static void Main()
{
Console.WriteLine("regular AND:");
Console.WriteLine("result is {0}", Method1() & Method2());
Console.WriteLine("short-circuit AND:");
Console.WriteLine("result is {0}", Method1() && Method2());
}
}
/*
Output:
regular AND:
Method1 called
Method2 called
result is False
short-circuit AND:
Method1 called
result is False
*/
Спецификация языка C#
Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:
- 7.11.2 Определенные пользователем условные логические операторы
См. также
Основные понятия
Руководство по программированию в C#