In c# können wir Delegaten über eine Vielzahl von Mitteln (z.B. Action<>, Func<>, Delegate, Lambdas, usw.) erstellen. Aber wenn Sie diese Methoden aufrufen, müssen Sie die Parameterwerte für den Delegaten angeben, den Sie aufrufen:
delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5);
Gibt es eine Möglichkeit, in c# zu kapseln eine Methode delegieren MIT Parameterwerte? Im Wesentlichen verzögern Aufruf einer voll parametrisierten Methode? So müssen Sie nicht die Parameterwerte beim Aufruf angeben?
Zum Beispiel so etwas wie dieser ungültige Code:
delegate int del(int i);
del myDelegate(5) = x => x * x;
int j = myDelegate;
Ich bin mir bewusst, dass der Anwendungsfall nicht unmittelbar einleuchtend ist. In dem Fall, den ich gerade betrachte, habe ich eine nicht-deterministische Methode, die der Aufrufer aufrufen können soll, ohne dass er die Parameter, die die Methode benötigt, kennen muss. Eine Möglichkeit, dies zu erreichen, wäre das Erstellen einer Klasse, die sowohl die Parameterwerte als auch den Methodendelegaten kapselt und die vom Aufrufer referenziert und aufgerufen wird. Aber ich bin neugierig, ob es einen alternativen, prägnanteren Weg gibt.