Und immer wieder params [] …

Da ich Troll nun schon wieder einmal darauf hereingefallen bin, einfach mal als kleiner Tipp für andere, die auch so vergesslich sind wie ich.

Ich verwende in C# eine Methode der Art void Test(params sometype[] args). So in C++ Analogie (sehr weit hergeholt, da das … / varargs doch nur mit Hilfe weiterer Parameter funktioniert) sollte man erst einmal erwarten, dass args niemals null ist – höchstens mal leer. Das stimmt leider nicht: C# erlaubt es auch ein sometype[] Feld direkt zu übergeben – das params wird dann mehr oder weniger ignoriert. So ein Feld kann natürlich null sein – mit der Konsequenz, dass auch args null ist!

Also Vorsicht: statt args.Length zu prüfen lieber (args == null) ? 0 : args.Length verwenden.

Viel Spaß mit all den anderen Fallstricken

Jochen

Bookmark the permalink.

Schreibe einen Kommentar