Для чего использовать ключевое слово event в объявлении события, если события — это те же самые делегаты - C#
Формулировка задачи:
Господа, скажите пожалуйста, для чего использовать ключевое слово event в объявлении события, если события - это те же самые делегаты ? Вроде все прекрасно можно реализовать и без event. По сути объявление поля события - это объявление переменной делегата, в которую в дальнейшем внедряются методы. И соответственно при вызове этого события происходит групповой вызов методов. Спасибо.
Решение задачи: «Для чего использовать ключевое слово event в объявлении события, если события — это те же самые делегаты»
textual
Листинг программы
- public class TestClass
- {
- public Action SomeAction;
- public event EventHandler MyEvent;
- public void FireEvent()
- {
- MyEvent(this, new EventArgs());
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- var tc = new TestClass();
- tc.SomeAction += Method;
- tc.SomeAction();
- tc.SomeAction -= Method;
- tc.SomeAction();
- tc.MyEvent += MyEventHandler;
- tc.FireEvent();
- tc.MyEvent -= MyEventHandler;
- tc.FireEvent();
- Console.ReadKey(true);
- }
- private static void Method()
- {
- Console.WriteLine("I am a subscriber of delegate.");
- }
- private static void MyEventHandler(object obj, EventArgs e)
- {
- Console.WriteLine("I am a subscriber of event.");
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д