У меня есть класс, определяющий несколько функций, с той же подписьюВызвать метод, передаваемый в качестве параметра на объект передается в качестве параметра
public class MyClass
{
public string MyParam1() ...
public string MyParam2() ...
...
}
Из другого класса я хочу вызвать метод, передаваемый в качестве параметра на объект передается в качестве параметр
void MyFunction(MyClass anObject, Func<string> aMethod)
{
string val = ??? // Here call aMethod on anObject
}
Я уверен, что это возможно сделать с помощью отражения, но есть ли трудный способ сделать это?
На самом деле у меня есть набор объектов, а не один объект, поэтому я не могу напрямую вызвать метод объекта.
Возможный дубликат [Получить только методы с определенной подписью из Type.GetMethods()] (http://stackoverflow.com/questions/5152346/get-only-methods-with-specific-signature-out-of-of- type-getmethods) –
Не совсем понятно, что вы здесь задаете. Делегат уже знает, к какому экземпляру он должен быть вызван. Вы можете вызвать свою «MyFunction» следующим образом: «MyFunction (someObject,() =>« test »);' в этом случае переданный делегат не из или из 'someObject', что бы вы ожидали здесь? –
Прошу прощения, я постарался сделать вопрос как можно более простым, и я пропустил указать одну трудность. На самом деле мой первый параметр - это набор объектов, и я хочу вызвать тот же метод для каждого объекта. – user2223898