Зачем нужны события, когда уже есть делегаты? - C#
Формулировка задачи:
Сабж.
Зачем создавать событие(event), привязывать его к делегату и добавлять слушателей к событию, когда можно сразу добавить слушателей в делегат и уменьшить себе работу не создавая событий? Может у событий есть какие то дополнительные свойства что делает их круче делегатов в плане контейнера для слушателей? Иначе нет смысла
Решение задачи: «Зачем нужны события, когда уже есть делегаты?»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication28 { class Program { static void Main(string[] args) { EvenTest et = new EvenTest(); et.MyEvent += (s, e) => Console.WriteLine("Hello"); et.Foo(); et.Counter = 10; et.MyEvent += (s, e) => Console.WriteLine("Hello"); et.Foo(); Console.ReadLine(); } } public class EvenTest { public int Counter { get; set; } private event EventHandler _myEvent = delegate { }; public event EventHandler MyEvent { add { //Тут мы можем реализовать нашу логику if (Counter != 0) { _myEvent += value; } } remove { //И тут тоже _myEvent -= value; } } public void Foo() { _myEvent(this, EventArgs.Empty); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д