ПРЕДИСЛОВИЕ
У меня есть кнопка формы Windows, которая выставляет событие OnClick (отправитель объекта, EventArgs e).
В моем приложении я могу справиться с этим, используя классическую технику обработки событий C #:
// Button Creation
Button button = new Button();
button.Click += MyEventHandler;
Затем Windows Form запрашивает обработчик со следующей подписью:
public void MyEventHandler(object sender, EventArgs e) { }
Предположим, что я хотел бы использовать лямбда-выражение, чтобы сделать это, я могу использовать синтаксис:
button.Click += (sender, args) =>
{
// execute the code
};
Недостатком этого является то, что я не могу отписаться от лямбда-выражения.
ВОПРОС
Я хотел бы иметь вспомогательный класс, который позволит мне обрабатывать любое событие Click, а также использовать дополнительное действие в качестве параметра. Поэтому я хотел бы написать что-то вроде этого:
button.Click += MyUtility.Click(()
=> {
// the custom code the Click event will execute
})
Могу ли я сделать это как-нибудь?