Kategorien
Nur mal so

?? 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

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

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 ;-)

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]

Kommentare sind geschlossen.