Преобразование группы методов, анонимного метода или лямбда-выражения в делегат требует, чтобы компилятор знал точный тип делегата. Тем не менее, вы могли бы потенциально использовать лямбда-выражения и захваченные переменные, чтобы сделать это проще:
public void InvokeMethod(Action action)
{
action();
}
public int Add(int a, int b)
{
return a + b;
}
public void Test()
{
InvokeMethod(() => Add(2, 3));
}
Это в основном задерживает вызов обычным способом, но заключая фактический вызов в Add
в простой Action
делегат.
Если это не соответствует вашим требованиям, возможно, вы расскажете нам немного больше о том, чего вы на самом деле пытаетесь достичь.
РЕДАКТИРОВАТЬ: Если это сгенерированный код, вы можете привести к Func<...>
с правильными аргументами типа - при условии, что их не слишком много. Кроме этого, нет никакого реального способа просто передать в группу методов. Были случайные обращения к оператору "infoof (...)" (например, typeof, но для участников), который давал бы вам MemberInfo, но на самом деле его не существует.