En C#, nous pouvons créer des délégués via divers moyens (par exemple, l'action <>, Func <>, délégué, lambdas, etc.). Mais quand vous invoquez ces méthodes, vous devez fournir les valeurs des paramètres pour le délégué, vous invoquez:Comment créer un délégué de méthode entièrement paramétré en C#?
delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5);
Est-il possible en C# pour encapsuler un délégué de méthode avec les valeurs des paramètres? Essentiellement retarder l'invocation d'une méthode entièrement paramétrée? Vous n'avez donc pas besoin de fournir des valeurs de paramètre au moment de l'appel?
Par exemple quelque chose comme ce code invalide:
delegate int del(int i);
del myDelegate(5) = x => x * x;
int j = myDelegate;
Je suis au courant du cas d'utilisation n'est pas immédiatement évidente. Dans le cas que je suis en train de regarder, j'ai une méthode non-déterministe que je voudrais que l'appelant puisse invoquer sans avoir à contenir ou être conscient des paramètres dont la méthode a besoin. Une façon d'y parvenir serait de créer une classe qui encapsule à la fois les valeurs des paramètres et le délégué de la méthode et de faire en sorte que celle-ci soit référencée et invoquée par l'appelant. Mais je suis juste curieux de savoir s'il y a une manière alternative et plus succincte.