Можно ли передать произвольную группу методов в качестве параметра метода?

Я хотел бы написать функцию, подобную следующей

// The type 'MethodGroup' below doesn't exist.  This is fantasy-code.
public void MyFunction(MethodGroup g)
{
    // do something with the method group
}

Позже я мог позвонитьMyFunction слюбой метод группы. Что-то вроде этого.

MyFunction(Object.Equals)

Если я сделаю подпись, все будет хорошо.

public void MyFunction(Func f)
{
    // do something with known delegate
}
...
MyFunction(Object.Equals)

Группа методовObject.Equals счастливо приведен в известный тип делегатаFuncно я неЯ не хочу фиксировать определенную подпись. Я'Я хотел бы передать любую группу методов.MyFunction

Группы методов не могут быть преобразованы вSystem.Object

public void MyFunction(object o)
{
    // do something with o
}
...
MyFunction(Object.Equals) // doesn't work

Я думаю, что всеs забыли скобки при вызове метода и обнаружили это в какой-то момент. Я'Я надеюсь, что это нене означает, что группы методов нет (или может 'не должно быть преобразовано) в объекты первого класса.

Я неНе думаю, что выражения Linq дадут вид общности, которую яищу, но я наверняка что-то упустил.

Я должен также упомянуть, что было бы хорошо, если бы группа методов содержала перегрузки, при условии, что у меня есть способ проверить группу методов.

Что бы я сделал с группой методов? Я мог бы распечатать все сигнатуры всех методов в группе (перегрузки, методы расширения и т. Д.), Или я мог 'вызвать» группа с некоторыми аргументами (если возможно, разрешите корректную перегрузку в группе). Есть и другие способы сделать эти вещи, но это те вещи, которые вы, возможно, захотите сделать с группой методов.

Как уже упоминали несколько человек, я могу принятьDelegateи приведение к конкретному известному типу делегата при вызове.MyFunction

public void MyFunction(Delegate d)
{
    // do something with d
}
...
MyFunction((Func)Object.Equals)

Но это неЭто почти то же самое, что и прохождение всей группы методов. Это выбирает один метод из группы и преобразует его в конкретного делегата. Мне бы очень хотелось передать всю группу за один выстрел.

Ответы на вопрос(4)

Ваш ответ на вопрос