Der ??-Operator
Der ??-Operator wurde mit C# 3.0 eingeführt. Er funktioniert ganz einfach: Ist der Wert auf seiner linken Seite ungleich null, gibt er diesen Wert zurück, ansonsten den auf der rechten Seite. Voraussetzung ist natürlich das ein nullbarer Typ oder Referenztyp getestet wird. Häufig wird der Operator eingesetzt, um Standardwerte als Fallback zu definieren:
public class Foo
{
static void Main()
{
Foo value = null;
value = ReturnFoo(value);
value = null;
value = ReturnFooShorter(value);
}
static Foo ReturnFoo(Foo foo)
{
if (foo != null)
return foo;
else
return new Foo();
}
static Foo ReturnFooShorter(Foo foo)
{
return foo ?? new Foo();
}
}
Die Einführung des ??-Operators war nicht ganz unumstritten da er den Code möglicherweise schwerer lesbar gemacht hätte. Als Kurzschreibweise um auf null abzufragen hat er sich jedoch durchgesetzt.