Оператор && (справочник по 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#

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

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

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

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