Класс с событием
Даже в консольных приложениях использование делегатов и событий — необходимый и удобный способ реализации многих идей. Рассмотрим приложение, имитирующее выпадение игральной кости. Если выпадет число 6, сгенерируется событие — max. Создайте новое консольное приложение, назовите его ClasswithEvent и воспользуйтесь следующим кодом:
using System;
namespace ClasswitnEvent { //Объявляем делегат по имени EventHandler (Event Handler — oбработчик события) public delegate void EventHandler(); // Создаем класс "Игральная кость" class IgralnayaKost { Random r; //Объявляем событие на основе делегата public event EventHandler max; //В конструкторе класса объявляем переменную r, генерируемую встроеным объектом Random public IgralnayaKost() { r=new Random(); } //Создаем метод, в котором будет вызываться событие public int random() { //Случаное число от 1 до 6 int res = r.Next(6)+1; if(res==6) { //Вызываем событие max(); } return res; } }
class Class1 { /// <summary> /// The main entry point for the application /// </summary> [STAThread] static void Main(string[] args) {
//Создаем экземпляр brosok класса IgralnayaKost IgralnayaKost brosok=new IgralnayaKost(); //Добавляем обработчика события brosok.max+=new EventHandler(Metodobrabotchik); //Вызываем метод, в котором вызывается событие for(int i=0; i<15; i++) { Console.WriteLine("{0}", brosok.random()); }
} //Обработчик для события public static void Metodobrabotchik() { Console.WriteLine("Выпало максимальное количество очков"); } } }
Листинг 1.7.
В классе Class1 создается новый экземпляр brosok класса IgralnayaKost, затем событию max определяется обработчик Metodobrabotchik и запускается метод random 15 раз. Если выпадет шестерка, то возникнет событие max и сработает обработчик для него. Результат выполнения программы будет каждый раз разный и будет выглядеть примерно так (рис. 1.38):

Рис. 1.38. Результат приложения ClasswithEvent
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий