предисловиемC# подключают обработки событий с дополнительными параметрами
У меня есть форма кнопки Windows, которая предоставляет событие OnClick (объект отправитель, EventArgs е). В моем приложении я могу справиться с этим, используя классическую технику C# обработки событий:
// Button Creation
Button button = new Button();
button.Click += MyEventHandler;
Тогда форм Windows просить у меня обработчик со следующей подписью:
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
})
Могу ли я это сделать каким-то образом?
Зачем проходить через все это, когда у вас уже есть решение? Не используйте лямбда, если вам нужно отказаться от подписки, просто. –
Вы вообще не ответили на вопрос ... – Raffaeu