?? Operátor (C#-Reference)
?? operátor se nazývá null coalescing operátor a slouží k definování výchozí hodnota pro typy s možnou hodnotou Null hodnotu nebo odkazovat se . Vrátí levém operand Pokud operand není null. v opačném případě vrátí pravý operand.
Poznámky
typ s možnou hodnotou null může obsahovat hodnotu nebo může být definován.?? operátor definuje výchozí hodnota vrácených při než je přiřazen typ s možnou hodnotou null -typ s možnou hodnotou null. Pokud se pokusíte přiřadit Structure hodnota s možnou hodnotou Null hodnota bez použití ?? operátorbude generovat kompilovat- chyba. Pokud použijete osazení a hodnota s možnou hodnotou NULL je aktuálně definován InvalidOperationExceptionbude vyvolána výjimka .
Další informace naleznete v tématu Typy s možnou hodnotou Null (Příručka programování C#).
Výsledkem??operátor nepovažuje být konstanta, i když oba argumenty jsou konstanty.
Příklad
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");
}
}
Viz také
Referenční dokumentace
Typy s možnou hodnotou Null (Příručka programování C#)