Ho bisogno di un metodo che richiede un'azione (o un Func), ma l'azione ha un numero misto di parametri. Qual è il modo più semplice e compatto per implementare questi sovraccarichi:C# Operazione e sovraccarico dei parametri 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) { ... } // ???
Il contenuto dei metodi sono esattamente lo stesso, tranne per l'esecuzione dell'azione ed i suoi parametri.
Se possibile, non utilizzare alcuna funzionalità specifica di C# 4.0 per risolvere questo problema.
Non esitate a fornire anche una soluzione di ordine superiore. –
@Seb: Per quanto riguarda la funzione di ordine superiore: ci sei già avendo parametrizzato la tua azione. –