Зачем здесь при генерации события применяется this? - C#
Формулировка задачи:
Здравствуйте! Подскажите пожалуйста , не пойму почему this применяется в строке 20 ( программа рабочая ) Впечатление , что просто от лампочки его применили, а как это понять не знаю.
//Листинг 10.2. Оповещение наблюдателей с помощью делегата
Листинг программы
- using System;
- namespace ConsoleApplicationl
- {
- public delegate void Del(object о); // объявление делегата
- class Subj // класс-источник
- {
- Del dels; // объявление экземпляра делегата
- public void Register(Del d) // регистрация делегата
- {
- dels += d;
- }
- public void OOPS() // что-то произошло
- {
- Console.WriteLine("OOPS!");
- if (dels != null) dels(this); // оповещение наблюдателей
- }
- }
- class ObsA // класс наблюдатель
- {
- public void Do(object о) // реакция на событие источника
- {
- Console.WriteLine("Вижу, что OOPS!");
- }
- }
- class ObsB // класс-наблюдатель
- {
- public static void See(object о) // реакция на событие источника
- {
- Console.WriteLine("Я тоже вижу, что OOPS!");
- }
- }
- class Classl
- {
- static void Main()
- {
- Subj s = new Subj(); // объект класса-источника
- ObsA o1 = new ObsA(); // объекты
- ObsA o2 = new ObsA(); // класса-наблюдателя
- s.Register(new Del(o1.Do)); // регистрация методов
- s.Register(new Del(o2.Do)); // наблюдателей в источнике
- s.Register(new Del(ObsB.See)); // ( экземпляры делегата )
- s.OOPS(); // инициирование события
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Зачем здесь при генерации события применяется this?»
textual
Листинг программы
- public void OOPS() // что-то произошло
- {
- Console.WriteLine("OOPS!");
- if (dels != null) dels.Invoke(new object()); // оповещение наблюдателей
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д