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

Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.