Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

.NET чем отличаются Делегаты от Событий? Объясните как для чайника плиз

uyiiy Ученик (82), на голосовании 9 лет назад
Голосование за лучший ответ
Доктор Акаса Просветленный (44439) 9 лет назад
Делегат содержит в себе ссылку на один или несколько методов.
Методы можно добавлять и удалять.
Делегат может вызвать методы. Методы будут вызваны в порядке их добавления.
Если методы возвращают значения, делегат вернёт значение только последнего вызова.
Если при вызове произойдёт исключение, цепочка методов прервётся.
Методы делегата можно обработать по одному, в цикле foreach.

Событие на самом деле является свойством, содержащим делегат.
Событие может вызывать только класс владелец.
Для события доступны только два способа взаимодействия, операторы += и -=.
События служат для взаимодействия классов.
Например, текстовое поле может сообщить о том, что его отредактировали.
А подписавшийся на событие метод тут же обработать ввод пользователя.

Делегат и событие такие же разные как поле и свойство.
Похожие вопросы