Zum Inhalt springen
Fabian Deitelhoff

C#: Inkonsistente Parameterreihenfolge

Aus meinem alten Blog (2012–2017). Der Text steht so, wie ich ihn damals geschrieben habe.

Früher, also so vor ca 10-12 Jahren, habe ich viel mit PHP gemacht. Muss um die Versionen 4.1 beziehungsweise 4.2 gewesen sein. Mit aktivierten register_globals und solch netten Geschichten. Aber Jugendsünden hat wohl jeder ;).

Inkonsistente Parameter

Ich möchte an dieser Stelle auch gar nicht über PHP herziehen. Ganz im Gegenteil. Die Sprache war zum Einstieg damals sehr gut und es hat viel Spaß gemacht. Vielleicht wäre ich ohne PHP nicht in Richtung Softwareentwicklung gegangen.

Was mir schon damals sauer aufstieß, war die sehr inkonsistente Reihenfolge der Parameter bei vielen Funktionen. Vielleicht sogar bei fast allen Funktionen. So genau weiß ich das nicht mehr. Ob sich das inzwischen gebessert hat, kann ich auch nicht sagen. Ich habe schon lange nichts mehr mit PHP gemacht.

C# ist mit dabei

Heute ist mir bei der Entwicklung aufgefallen, dass dieses Phänomen auch in C# vorhanden ist. Vermutlich an nicht so vielen Stellen, sonst wäre ich schon viel früher darauf aufmerksam geworden. Abbildung 1 zeigt einen kleinen Code-Ausschnitt.

Bild nicht mehr verfügbarAbb. 1: Inkonsistente Reihenfolge der Parameter zweier Exceptions.

Abb. 1: Inkonsistente Reihenfolge der Parameter zweier Exceptions.

Die Markierung zeigt das Problem, wenn es nicht, bei diesem direkten Vergleich, eh schon sofort auffällt. In beiden Fällen handelt es sich um eine Exception, die angibt, dass etwas mit dem Parameter nicht stimmt. Beide Male kann der Name des Parameters angegeben werden. Sollte, meiner Meinung nach, auch Standard sein, da es womöglich bei der Fehlersuche hilft.

Allerdings stimmt die Reihenfolge nicht. Bei der ArgumentNullException fehlt zusätzlich noch eine Überladung. Es können nicht die beiden Zeichenketten und eine innere Exception übergeben werden. Bei der ArgumentException ist das möglich. Schade eigentlich. Wirklich gravierend ist dieses Problem natürlich nicht. Ich finde, dass erweckt immer den Eindruck der mangelnden Professionalität. Zugegeben, in diesem Fall ist das schon sehr böswillig betrachtet. Muss trotzdem nicht sein. Über die fehlende Überladung bin ich schon des öfteren gestolpert. Wirklich nachgeguckt habe ich aber nicht, ob auch andere Exceptions das Problem haben.

Fazit

Alles halb so wild. Finde ich im Grunde ja auch. Unschön ist es trotzdem, da es hin und wieder nerven kann. Wenn ihr noch mehr solcher Fälle kennt, freue ich mich über Nachrichten beziehungsweise Kommentare.