Пример класса с событием
Сайт создан в системе uCoz
Меню сайта


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


Форма входа


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

PayPal:

LiqPay or Credit/Debit Card:

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




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

  • Все вопросы касающиеся Neil Scope (7126)
  • инвертор на микропроцессоре с 12\220v с синусом на выходе (3)
  • Предложения по работе сайта и форума (18)
  • Изготовление ПП (7)
  • NeiLogicAnalyzer (48)
  • Двухполярный линейный БП с управлением на МК (91)
  • Заказ плат под NeilScope3 (12.2015) (60)
  • Первое знакомство с микроконтроллерами Silabs (105)
  • Куплю плату NS-3 (0)
  • Подскажите (0)



  • Статистика

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



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






    Приветствую Вас, Пробегающий мимо · RSS 19.04.2024, 11:14

    Основы 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 и выполнится обработчик для него. Результат выполнения программы может быть, например, таким:

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