Непонятно, как вы собираетесь обобщать цепочку вызовов функций с различными параметрами, типом и типом возврата (насколько я понял). Определенно delegate
не ваш друг здесь.
Что вам нужно сделать, IMO, это:
Определите пользовательский класс, в котором вы можете объединять нужные функции и вызывать их итерацией по списку, очереди или как угодно. Если вы хотите использовать delegates
, вам нужно определить один делегат для каждого типа функции. На самом деле это хорошо, delegates
: указатели на типобезопасные функции.