Share via


Operator || (C#-Referenz)

Der bedingte Operator OR (||) führt eine logische OR-Operation für seine bool-Operanden aus, wertet den zweiten Operanden aber nur bei Bedarf aus.

Hinweise

Die Operation

x || y

entspricht der Operation

x | y

was jedoch unter folgender Bedingung nicht gilt: Wenn x true ist, wird y nicht ausgewertet, weil das Ergebnis der OR-Operation unabhängig davon, welchen Wert y aufweist, true ist. Dies wird als "Kurzschlussauswertung" bezeichnet.

Der bedingte Operator OR kann nicht überladen werden, aber Überladungen der regulären logischen Operatoren true und false werden, mit gewissen Einschränkungen, auch als Überladung der bedingten logischen Operatoren aufgefasst.

Beispiel

Beachten Sie im folgenden Beispiel, dass in dem Ausdruck, der || verwendet, nur der erste Operand ausgewertet wird.

class ConditionalOr
{
    static bool Method1()
    {
        Console.WriteLine("Method1 called");
        return true;
    }

    static bool Method2()
    {
        Console.WriteLine("Method2 called");
        return false;
    }

    static void Main()
    {
        Console.WriteLine("regular OR:");
        Console.WriteLine("result is {0}", Method1() | Method2());
        Console.WriteLine("short-circuit OR:");
        Console.WriteLine("result is {0}", Method1() || Method2());
    }
}
/*
Output:
regular OR:
Method1 called
Method2 called
result is True
short-circuit OR:
Method1 called
result is True
*/

Siehe auch

Referenz

C#-Operatoren

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz