Sdílet prostřednictvím


?? – operátor (Referenční dokumentace jazyka C#)

Operátor ?? se označuje jako operátor nulového sjednocení. Vrátí levý operand, pokud hodnota operandu není null; v opačném případě vrátí pravý operand.

Poznámky

Typ povolené hodnoty null představuje hodnotu z domény typu, hodnotu lze také definovat (v takovém případě je hodnota null).Můžete použít syntaktickou expresivitu operátoru ?? pro vrácení příslušné hodnoty (pravý operand), pokud levý operand má typ povolené hodnoty null, jehož hodnota je null.Pokud se pokusíte přiřadit typ povolené hodnoty null k typu zakázané hodnoty null bez použití operátoru ??, dojde k chybě v době kompilace.Pokud použijete přetypování a typ povolené hodnoty null není aktuálně definován, bude vyvolána výjimka InvalidOperationException.

Další informace naleznete v tématu Typy s povolenou hodnotou Null (Průvodce programováním v C#).

Výsledek operátoru ?? se nepovažuje za konstantu ani tehdy, pokud jsou oba argumenty konstantami.

Příklad

class NullCoalesce
{
    static int? GetNullableInt()
    {
        return null;
    }

    static string GetStringValue()
    {
        return null;
    }

    static void Main()
    {
        int? x = null;

        // Set y to the value of x if x is NOT null; otherwise, 
        // if x = null, set y to -1. 
        int y = x ?? -1;

        // Assign i to return value of the method if the method's result 
        // is NOT null; otherwise, if the result is null, set i to the 
        // default value of int. 
        int i = GetNullableInt() ?? default(int);

        string s = GetStringValue();
        // Display the value of s if s is NOT null; otherwise,  
        // display the string "Unspecified".
        Console.WriteLine(s ?? "Unspecified");
    }
}

Viz také

Referenční dokumentace

Operátory jazyka C#

Typy s povolenou hodnotou Null (Průvodce programováním v C#)

Koncepty

Průvodce programováním v C#

Další zdroje

Referenční dokumentace jazyka C#

Co přesně znamená pojem „Zrušeno“?