Оператор && (справочник по C#)
Условный оператор AND (&&) выполняет логическое AND своих операндов типа bool, но вычисляет только второй операнд при необходимости.
Заметки
Операция
x && y
соответствует операции
x & y
за исключением того, что если xсуществует false" y не вычисляется, поскольку результат операции И false независимо от того, какие значения y .Это называется сокращенным вычислением.
Оператор условного AND не может быть перегружен, но перегрузки регулярных логических операторов и операторов true и false могут, с некоторыми ограничениями, считаться перегрузками условных логических операторов.
Пример
В следующем примере выражение условия во втором if оператор оценивает только первый операнд, поскольку операндом возвращает false.
class LogicalAnd
{
static void Main()
{
// Each method displays a message and returns a Boolean value.
// Method1 returns false and Method2 returns true. When & is used,
// both methods are called.
Console.WriteLine("Regular AND:");
if (Method1() & Method2())
Console.WriteLine("Both methods returned true.");
else
Console.WriteLine("At least one of the methods returned false.");
// When && is used, after Method1 returns false, Method2 is
// not called.
Console.WriteLine("\nShort-circuit AND:");
if (Method1() && Method2())
Console.WriteLine("Both methods returned true.");
else
Console.WriteLine("At least one of the methods returned false.");
}
static bool Method1()
{
Console.WriteLine("Method1 called.");
return false;
}
static bool Method2()
{
Console.WriteLine("Method2 called.");
return true;
}
}
// Output:
// Regular AND:
// Method1 called.
// Method2 called.
// At least one of the methods returned false.
// Short-circuit AND:
// Method1 called.
// At least one of the methods returned false.
Спецификация языка C#
Дополнительные сведения см в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
Ссылки
Основные понятия
Руководство по программированию на C#