2010-04-13 2 views

ответ

4

Конечно, многие события используют EventHandler как простой делегат.

Или вы имеете в виду, что вы можете подписывать множество событий на один и тот же метод? Это тоже возможно, вы можете подписаться, например. подписывайте TextChanged-Events из всех текстовых полей в один и тот же делегат. Специально для Validated and Validated событий полезно использовать только один метод для всех полей, которые используют одну и ту же логику проверки.

События, как правило, многоадресные в .NET, поэтому вы можете подписаться на многие делегаты на одно событие. Например, вы можете указать два или три метода проверки текстовых полей и подписать событие TextBox.Validating ко всем методам, которые проверяют один аспект ввода.

0

Пока обработчики событий одинаковы, вы можете иметь один и тот же обработчик на столько событий, сколько захотите.

От MSDN:

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

4

ли вы имеете в виде, используя один и тот же делегат типа для двух различных деклараций событий, или используя тот же делегат экземпляра подписаться на два различных события? Оба допускаются:

public event EventHandler Foo; 
public event EventHandler Bar; 
... 
EventHandler handler = SomeMethod; 
Foo += handler; 
Bar += handler; 
Смежные вопросы