Laden...

Func<...> und Action<...> jetzt mit 16(!) Parametern !!!

Erstellt von CoderboyPB vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.228 Views
C
CoderboyPB Themenstarter:in
327 Beiträge seit 2008
vor 11 Jahren
Func<...> und Action<...> jetzt mit 16(!) Parametern !!!

Seit Version 4.0 gibt es nun Überladungen für bis zu 16 Argumenten.
Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>-Delegat

Stellt sich die Frage, ob jemals jemand eine Funktion mit 16 Parametern schreiben wird 😉
Also ich kann es mir NICHT vorstellen 😃

16.828 Beiträge seit 2008
vor 11 Jahren

Ne Funktion vielleicht nicht, aber vielleicht eine Methode? 8)

1.346 Beiträge seit 2008
vor 11 Jahren

Ich finde es dennoch ziemlich sinnfrei. Wenn man tatsächlich solch eine Methode braucht sollte man sich das Delegate meiner Meinung nach selbst definieren und die parameter vernünftig benennen. Sonst blickt da doch keiner durch.

LG pdelvo

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo zusammen,

die 16 Parameter stellen eine Obergrenze da, die vermutlich extra so gewählt wurde, das sie in der Praxis nicht bzw. nie überschritten wird. Jede Grenze in einem Bereich, wo man sagen würde "ja, ein Delegat mit diese Anzahl von Parametern kann vorkommen, das macht Sinn", wäre eine Einschränkung, wenn dann jemand doch noch einen Parameter mehr braucht. Also schraubt man die Grenze (zwangsläufig) in einen Bereich, wo es eigentlich keinen Sinn mehr macht.

Man darf dabei auch nicht nur an handgeschriebenen Code denken. Bei automatisch generiertem Code kann die Parameteranzahl leicht man höher sein, als man es bei handgeschriebenen Code machen würde.

herbivore

C
80 Beiträge seit 2010
vor 11 Jahren

Aus der Clean Code Perspektive wäre das so auch nie in Ordnung. Da sollte man die vielen Parameter lieber in ein Objekt zusammenführen. Deshalb ist es so schon unnötig.

925 Beiträge seit 2004
vor 11 Jahren

... oder den Compiler/die Sprache entsprechend erweitern, dass die Zahl der Parameter explizit angegeben werden kann und nach oben praktisch keine Grenze hat.

Ich stimme da Herbivore zu. Besser haben als brauchen.

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo CSharperUser,

Aus der Clean Code Perspektive wäre das so auch nie in Ordnung.

wie wir alle wissen, arbeiten nicht alle Entwickler nach der CleanCode-Methode. 😃 Ein Produkt wie C#/.NET kann es sich nicht leisten, nur die Bedürfnisse einer bestimmten Entwicklergruppe oder nur einen bestimmten Entwicklungsansatz abzudecken, sondern muss für jeden Entwickler etwas bereithalten. Erst recht, wenn man die schon genannten Codegeneratoren als eigene "Entwicklergruppe" zählt.

herbivore