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

Условный логический оператор И &&, также известный как "сокращенный" логический оператор И, вычисляет логическое И операндов типа bool.The conditional logical AND operator &&, also known as the "short-circuiting" logical AND operator, computes the logical AND of its bool operands. Результат операции x && y принимает значение true, если оба оператора x и y имеют значение true.The result of x && y is true if both x and y evaluate to true. В противном случае результат будет false.Otherwise, the result is false. Если результатом первого операнда является значение false, второй операнд не вычисляется, и результат принимает значение false.If the first operand evaluates to false, the second operand is not evaluated and the result of operation is false. В следующем примере продемонстрировано такое поведение.The following example demonstrates that behavior:

bool SecondOperand()
{
    Console.WriteLine("Second operand is evaluated.");
    return true;
}

bool a = false && SecondOperand();
Console.WriteLine(a);
// Output:
// False

bool b = true && SecondOperand();
Console.WriteLine(b);
// Output:
// Second operand is evaluated.
// True

Логический оператор И & также вычисляет логическое И операндов типа bool, но он всегда вычисляет оба операнда.The logical AND operator & also computes the logical AND of its bool operands, but always evaluates both operands.

Возможность перегрузки оператораOperator overloadability

Определяемый пользователем тип не может перегружать условный логический оператор И.A user-defined type cannot overload the conditional logical AND operator. Тем не менее, если определяемый пользователем тип каким-либо образом перегружает операторы логическое AND, true и false, то операция && может быть применена для операндов этого типа.However, if a user-defined type overloads the logical AND and true and false operators in a certain way, the && operation can be evaluated for the operands of that type. Дополнительные сведения см. в разделе Пользовательские условные логические операторы в Спецификации языка C#.For more information, see the User-defined conditional logical operators section of the C# language specification.

Спецификация языка C#C# language specification

Дополнительные сведения см. в разделе Условные логические операторы в Спецификации языка C#.For more information, see the Conditional logical operators section of the C# language specification.

См. такжеSee also