Как объединить делегатов в C #

Я хочу реализовать метод, который принимает два делегата Action A1 и Action A2 и возвращает новый делегат, который объединяет их. Сигнатура метода следующая:

public static Action<Tuple<T1,T2>> CombineWith<T1,T2>(this Action<T1> a1, Action<T2> a2)

Итак, вместо того, чтобы говорить

{
 A1(t1);
 A2(t2);
}

, я хочу иметь возможность написать:

{
A1.CombineWith(A2)(Tuple.Create(t1,t2));
}

Какова возможная реализация этого метода?

7
задан Peter17 23 February 2011 в 08:46
поделиться