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.