Я пытаюсь создать объект, который содержит вызов определенного метода в каком-то другом классе. Вы должны иметь возможность вызвать вызов этого метода из экземпляра объекта. Насколько мне удалось выяснить, способ сделать это будет делегатом. Так это правильный способ обойти это? Развертывание метода из класса, который вы хотите использовать в качестве делегата, а затем настроить свой объект следующим образом?Как создать объект, конструктор которого принимает метод из другого класса?
public class ItemCombination
{
public ItemCombination(string Item1, string Item2, Delegate interaction)
{
this.Item1 = Item1;
this.Item2 = Item2;
this.interaction = interaction;
}
public string Item1 { get; set; }
public string Item2 { get; set; }
public Delegate interaction { get; set; }
public void Interact()
{
interaction();
}
}
Передача обратного вызова - это, безусловно, законный способ внедрения функциональности. Однако я бы предложил типизированный обратный вызов (для ясности, например Action, Func и т. Д.). –
Eric