작업 (또는 Func)을 사용하는 메서드가 필요하지만 작업의 매개 변수 수가 혼합되어 있습니다.C# Action 및 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) { ... } // ???
방법의 내용은 작업 및 해당 매개 변수의 실행을 제외하고 동일하다 :이 오버로드를 구현하는 가장 정직하고 컴팩트 한 방법은 무엇입니까.
가능하면이 문제를 해결하기 위해 C# 4.0 관련 기능을 사용하지 마십시오.
고차원 함수 솔루션도 자유롭게 제공하십시오. –
@Seb : 고차 함수에 관해서 : 당신은 당신의 행동을 매개 변수화함으로써 이미 그곳에 있습니다. –