Necesito un método que toma una Acción (o un Func), pero la Acción tiene un número mixto de parámetros. ¿Cuál es el modo más sencillo y compacto para implementar estas sobrecargas:C# Sobrecargas de parámetros Action y 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) { ... } // ???
El contenido de los métodos son exactamente los mismos, excepto para la ejecución de la acción y sus parámetros.
Si es posible, no use ninguna característica específica de C# 4.0 para solucionar esto.
No dude en proporcionar una solución de función de orden superior. –
@Seb: En cuanto a la función de orden superior: Ya estás allí al haber parametrizado tu acción. –