&&-Operator (C#-Referenz)&& Operator (C# Reference)

Der bedingte AND-Operator (&&) führt eine logische AND-Verknüpfung seiner bool-Operanden durch, wertet aber falls erforderlich nur den zweiten Operanden aus.The conditional-AND operator (&&) performs a logical-AND of its bool operands, but only evaluates its second operand if necessary.

HinweiseRemarks

Der VorgangThe operation

x && y  

entspricht dem Vorgangcorresponds to the operation

x & y  

mit der Ausnahme, dass y nicht ausgewertet wird, wenn x false ist, weil das Ergebnis der AND-Operation false ist, unabhängig vom Wert von y.except that if x is false, y is not evaluated, because the result of the AND operation is false no matter what the value of y is. Dies wird als „Kurzschlussauswertung“ bezeichnet.This is known as "short-circuit" evaluation.

Der bedingte AND-Operator kann nicht überladen werden, aber Überladungen der regulären logischen Operatoren und der Operatoren true und false gelten mit gewissen Einschränkungen auch als Überladungen der bedingten logischen Operatoren.The conditional-AND operator cannot be overloaded, but overloads of the regular logical operators and operators true and false are, with certain restrictions, also considered overloads of the conditional logical operators.

BeispielExample

Im folgenden Beispiel wertet der bedingte Ausdruck in der zweiten if-Anweisung nur den ersten Operanden aus, da der Operand false zurückgibt.In the following example, the conditional expression in the second if statement evaluates only the first operand because the operand returns 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#-ProgrammiersprachenspezifikationC# Language Specification

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auchSee Also

C#-ReferenzC# Reference
C#-ProgrammierhandbuchC# Programming Guide
C#-OperatorenC# Operators