Есть ли способ передать разные методы в качестве параметра в другой метод в C#? У меня есть такой код ниже
class Program
{
void Action1(string s){...}
string Func1(string s){...}
void RegisterAction(Action<string> action){...}
void RegisterFunc(Func<string, string> func){...}
void Register(????){ }
void Run()
{
RegisterAction(Action1); // ok
RegisterFunc(Func1); // ok
Register(Action1); // ?
Register(Func1); //?
}
}
Я хочу передать Action1 и Func1 в один и тот же метод 'Register', в котором я могу использовать отражение для реализации своей логики c. но Action<string>, Func<string,string>
- это разные делегаты, возможно, мне придется иметь дело с Action<int>, Func<object>
и многими другими типами, я не хочу писать методы 'register' для каждого действия и функции.
Любая помощь? Спасибо.