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