2012-08-21 2 views
0

Что лучше: Чтобы использовать EventHandler или иметь делегат вне интерфейса и использовать его внутри интерфейса?События, делегаты в интерфейсе

+4

Добро пожаловать в SO, Шак Смит. На этот вопрос невозможно ответить однозначно. Это почти всегда зависит от контекста. У вас есть определенный контекст? –

+0

Это зависит от того, что вы описываете. Существуют значительные различия между событиями и делегатами, поэтому приложение может быть различным в зависимости от контекста. Пожалуйста, будьте более конкретными – paulik

ответ

0

Вам нужно создать собственный делегат, если вам нужна другая информация, отличная от того, что EventHandler предоставляет (в основном , что подняло это событие).

Если вы хотите просто добавить некоторые данные к мероприятию, вы можете использовать EventHandler<TEventArgs> и создать свой собственный класс EventArgs для прикрепления данных.

Если эти события всегда будут поступать от одного конкретного типа (или его подтипов), тогда вы можете создать отдельный класс EventHandler, который использует этот тип в качестве отправителя вместо object. Одно из преимуществ этого - вам не нужно проверять тип отправителя в обработчике событий.

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

Смежные вопросы