Oh das war nur ein generelles Anliegen von mir
, ich habe da kein Spezialfall, aber das Prinzip ist doch den void* Zeigern aus C gleich, das ist doch dann so, als würde man fragen, wieso braucht man void* Zeiger, den man nach anderen Zeigersorten casten kann??
Die void* Zeiger nutzt man soweit ich weiß aber auch nur, weil es in C keine Generics gibt. Wenn man in einer streng typisierten Sprache die Typinformation wegschmeißen will, sollten alle Alarmsirenen losgehen.
Prinzipiell könnte es doch irgend wann mal ganz sinnvoll sein, das kein Spezialfall einer Funktionssignatur gebraucht wird, sondern das jede Funktion ausgeführt werden kann?
Wie rufst du denn eine Funktion auf die zuviele oder die falschen Parameter hat? Das klingt nach ziemlich hässlichen Laufzeitfehlern, die man ja eigentlich durch die Verwendung einer typisierte Sprache vermeiden möchte.
Für den Fall man gibt zu viele Parameter geht es übrigens mit anonymous functions:
There is one case in which an anonymous method provides functionality not found in lambda expressions. Anonymous methods enable you to omit the parameter list. This means that an anonymous method can be converted to delegates with a variety of signatures. This is not possible with lambda expressions.
Also eine parameterlose anonymous function kann in Delegates mit beliebigen Parametern eingesetzt werden.