예제 #1
0
 // Обработчик события
 public void Handler_3(object source, NewsEventArgs arg)
 {
     if ((arg.Message == "WEATHER") || (arg.Message == "SPORT"))
     {
         Console.WriteLine($"Подписчик\0{this.GetType().Name}\0 получил уведомление о новом событии" +
                           $" из категории <<{arg.Message}>>>\n");
     }
 }
예제 #2
0
        public MyClass()
        {
            // Создание обьекта класса-издателя
            NewsOperator sourceEvent = new NewsOperator();

            // Создание обьектов классов-подписчиков
            Subscriber_1 s1 = new Subscriber_1();
            Subscriber_2 s2 = new Subscriber_2();
            Subscriber_3 s3 = new Subscriber_3();

            // Подписка обьектов классов-подписчиков на события
            sourceEvent.SomeNewsEvent += new NewsEventHandler(s1.Handler_1);
            sourceEvent.SomeNewsEvent += new NewsEventHandler(s2.Handler_2);
            sourceEvent.SomeNewsEvent += new NewsEventHandler(s3.Handler_3);

            // Активизация процесса рассылки уведомлений о
            NewsEventArgs arg_news = new NewsEventArgs("NEWS");

            sourceEvent.InvokeEvent(arg_news);

            NewsEventArgs arg_sport = new NewsEventArgs("SPORT");

            sourceEvent.InvokeEvent(arg_sport);

            NewsEventArgs arg_humor = new NewsEventArgs("HUMOR");

            sourceEvent.InvokeEvent(arg_humor);

            NewsEventArgs arg_accid = new NewsEventArgs("ACCIDENTS");

            sourceEvent.InvokeEvent(arg_accid);

            NewsEventArgs arg_weather = new NewsEventArgs("WEATHER");

            sourceEvent.InvokeEvent(arg_weather);
        }
예제 #3
0
 // Метод, инициирующий рассылку сообщения о наступлении определенной категории события всем, кто на нее подписан
 public void InvokeEvent(NewsEventArgs arg)
 {
     SomeNewsEvent?.Invoke(this, arg);
 }