Пример класса с событием
Конструктор сайтов - uCoz
Меню сайта


Поиск по сайту
Loading


Форма входа


Помощь проекту

PayPal:

LiqPay or Credit/Debit Card:

W1 "Единый кошелек":
199990419310
WebMoney:
WME - E509190786817
WMZ - Z195499640086
WMU - U204403357554
WMR - R280087882619




Активные темы

  • Все вопросы касающиеся Neil Scope (6444)
  • Заказ плат под NeilScope3 (12.2015) (59)
  • Первое знакомство с микроконтроллерами Silabs (105)
  • инвертор на микропроцессоре с 12\220v с синусом на выходе (2)
  • Куплю плату NS-3 (0)
  • Подскажите (0)
  • Осваиваем LPC2478... (1)
  • Мелкие вопросы по МК51 от SiLabs-a.. (40)
  • Детали для Neil Scope 2 (0)
  • NeiLogicAnalyzer (47)



  • Статистика

    Онлайн всего: 2
    Гостей: 2
    Пользователей: 0



    Рекомендуемые браузеры: Mozzilla, Google Chrome






    Приветствую Вас, Пробегающий мимо · RSS 18.11.2017, 19:31

    Основы C#. Урок 34. Пример класса с событием

    На этом уроке мы расмотрим еще один пример класса с событием. Класс наш будет представлять из себя игральную кость, в классе будет единственный метод rnd, возвращающий случайное число от 1 до 6. Если этот метод возвратит 6, то сгенерируется событие max.

    namespace test
    {
     //Объявление делегата.
     public delegate void EventHandler();
     //Класс "Игральная кость".
     class MyDie
     {
     Random r;
     //Объвление события на основе делегата.
     public event EventHandler max;
     //Конструктор.
     public MyDie()
     {
     r=new Random();
     }
     //Объявление метода, в котором вызывается событие.
     public int rnd()
     {
     //Случаное число от 1 до 6.
     int res = r.Next(6)+1;
     if(res==6)
     {
     //Вызываем событие.
     max();
     }
     return res;
     }
     }
     //Класс для тестирования события.
     class Test
     {
     //Обработчик для события.
     public static void z()
     {
     Console.WriteLine("Вызов обработчика");
     }
     //Метод main.
     static void Main(string[] args)
     {
     //Создаем экземпляр события.
     MyDie w=new MyDie();
     //Добавление обработчика события.
     w.max+=new EventHandler(z);
     //Вызов метода, в котором вызывается событие.
     for(int k=0; k<10; k++)
     {
     Console.WriteLine("{0}", w.rnd());
     }
     }
     }
    }

    При запуске нашей программы к классе Test мы создаем новый экземпляр класса MyDie игральной кости, приписываем к событию max класса MyDie обработчик z, и подкидываем кость 10 раз. Если выпадет шестерка, то возникнет событие max и выполнится обработчик для него. Результат выполнения программы может быть, например, таким:

    Результат выполнения программы