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