Operator ?? (odwołanie w C#)
Operator ?? jest nazywany operatorem łączącym wartość null. Zwraca argument operacji z lewej strony, jeśli ma on wartość inną niż null; w przeciwnym razie zwraca argument operacji po prawej stronie.
Uwagi
Typ dopuszczający wartość null może reprezentować wartość z domeny typu albo wartość może być niezdefiniowana (w tym przypadku wartość jest równa null).Wyrazistości syntaktycznej operatora ?? można użyć w celu zwrócenia odpowiedniej wartości (argument operacji po prawej stronie), gdy argument operacji po lewej stronie należy do typu dopuszczającego wartości null i ma wartość null.Próba przypisania dopuszczającego wartości null typu wartości do niedopuszczającego wartości null typu wartości bez użycia operatora ?? spowoduje wygenerowanie błędu podczas kompilacji.Jeśli jest używane rzutowanie, a dopuszczający wartości null typ wartości nie jest obecnie zdefiniowany, zostanie zgłoszony wyjątek InvalidOperationException.
Aby uzyskać więcej informacji, zobacz Typy dopuszczające wartości zerowe (Przewodnik programowania w języku C#).
Wynik użycia operatora ?? nie jest traktowany jako stała, nawet jeśli oba argumenty są stałymi.
Przykład
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");
}
}
Zobacz też
Informacje
Typy dopuszczające wartości zerowe (Przewodnik programowania w języku C#)
Koncepcje
Przewodnik programowania w języku C#