J'ai besoin d'une méthode qui prend une Action (ou un Func), mais l'Action a un nombre de paramètres mélangé. Quelle est la manière la plus en avant et compact directement à mettre en œuvre ces surcharges:C# Action et surcharges des paramètres Func
public void Execute<T>(Action<T> action, T param) {
// TODO: Implement something like:
// Execute(action, param, null);
}
public void Execute<T1,T2>(Action<T1,T2> action, T1 param1, T2 param2) {
// TODO: Implement something like:
// Execute(action, param1, param2, null);
}
public void Execute<T1,T2,T3>(Action<T1,T2,T3> action, T1 param1, T2 param2, T3 param3) {
DoStuff();
action(param1, param2, param3)
DoMoreStuff();
}
// OR any other type of higher order function-solution
public void Execute(Action action, params object[] parameters) { ... } // ???
Le contenu des méthodes sont exactement les mêmes, à l'exception de l'exécution de l'action et de ses paramètres.
Si possible, n'utilisez aucune fonctionnalité spécifique à C# 4.0 pour résoudre ce problème.
N'hésitez pas à fournir également une fonction-fonction d'ordre supérieur. –
@Seb: Concernant la fonction d'ordre supérieur: Vous êtes déjà là en paramétrant votre action. –