Ich brauche eine Methode, die eine Aktion (oder eine Func), aber die Aktion hat eine gemischte Anzahl von Parametern. Was ist die direkteste und kompakte Art und Weise dieser Überlastungen zu implementieren:C# Aktion und Func Parameter Überladungen
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) { ... } // ???
Der Inhalt der Methoden sind genau die gleiche, mit Ausnahme der Ausführung der Aktion und deren Parameter.
Verwenden Sie nach Möglichkeit keine C# 4.0-spezifischen Funktionen, um dies zu beheben.
Bitte zögern Sie nicht, auch eine Funktion-Lösung höherer Ordnung zu bieten. –
@Seb: Bezüglich der Funktion höherer Ordnung: Sie sind bereits da, indem Sie Ihre Aktion parametrisiert haben. –