Operator || (C#-Referenz)

Aktualisiert: November 2007

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 xtrue 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 NullCoalesce
{
    static int? GetNullableInt()
    {
        return null;
    }

    static string GetStringValue()
    {
        return null;
    }

    static void Main()
    {
        // ?? operator example.
        int? x = null;

        // y = x, unless x is null, in which case y = -1.
        int y = x ?? -1;

        // Assign i to return value of method, unless
        // return value is null, in which case assign
        // default value of int to i.
        int i = GetNullableInt() ?? default(int);

        string s = GetStringValue();
        // ?? also works with reference types. 
        // Display contents of s, unless s is null, 
        // in which case display "Unspecified".
        Console.WriteLine(s ?? "Unspecified");
    }
}

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

C#-Operatoren

Weitere Ressourcen

C#-Referenz