?? Operator in C Sharp (C#)

Man lernt wirklich nie aus. Da existiert dieser Schlingel schon seit .Net 2.0 und erst jetzt entdecke ich den nützlichen „??“ Operator (Null Coalesce Operator) in C Sharp.

Um immer einen Defaultwert zu haben (z.B. wenn das Objekt aus einer Datenbank kommt), kann man statt:
[code language=csharp]
myobject = whatever.GetMyObject(x);
if(myobject == null) myobject = new MyObject();
[/code]

auch:
[code language=csharp]
myobject = whatever.GetMyObject(x) ?? new MyObject();
[/code]

schreiben.

Der Operator sorgt quasi dafür, dass das erste Nicht-Null-Objekt zurückgegeben wird. Gut zu wissen :-)

Siehe auch: MSDN Artikel dazu


Beitrag veröffentlicht

in

von

Kommentare

4 Antworten zu „?? Operator in C Sharp (C#)“

  1. Avatar von Schrempfy

    Hättest du mich mal gefragt … :D

  2. Avatar von Sebbi

    Wie soll man überhaupt irgendwen nach so etwas fragen? Es spart wie so vieles in .Net genau eine Zeile Schreibarbeit … nett, aber nicht nötig. Darauf kommt man doch wirklich nur, wenn man den Code von Frischlingen anschaut ;-)

  3. Avatar von Nicht Angegeben
    Nicht Angegeben

    Eigentlich ist der Operator ja dafür nicht gedacht, sondern für die Verwendung von Nullable.
    Also:
    [code]
    // int? entspricht Nullable
    int? someInt = Database.GetIntThatCouldBeNull();
    // Wert von someInt oder, wenn someInt == null den Wert -1
    int i = someInt ?? -1;
    [/code]

    1. Avatar von Sebbi

      Naja, aber Objekte können auch null sein, deshalb ziemlich praktisch in jeder Situation.