Задать вопрос
Kezzya
@Kezzya

Зачем нужно событие если есть делегат?

Вот есть делегат, я могу его вызвать в любой момент ( если уже сохранил туда методы ) А зачем собственно нужны события? Ещё не ясно, когда надо указывать EventHandler, когда надо просто название другого делегата.
Спасибо
  • Вопрос задан
  • 388 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Athari
@Athari
программист
Если оставить делегаты как анонимные методы в стороне, то события и делегаты соотносятся как свойства и поля.

1. Событие — это свойство с методами "add" и "remove".
2. Вызов свойства доступен только изнутри класса.
3. Событие может быть как обёрткой над полем-делегатом (аналог автосвойства), так и хранить ссылки на делегаты в какой-то другой форме и вообще содержать любую дополнительную логику.
4. Событие может быть виртуальным и т.п.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
Так событие и есть делегат, только с дополнительными свойствами из которых самое важное, что вызвать его можно только из класса, где он обьявлен.
Ответ написан
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
Джон Скит (Jon Skeet) об этом хорошо написал:
https://csharpindepth.com/Articles/Events
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
13 янв. 2025, в 19:17
50000 руб./за проект
13 янв. 2025, в 18:38
15000 руб./за проект
13 янв. 2025, в 18:27
5000 руб./за проект