progs.biz  
Начало > C# > Основы > Урок 34
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

С. Робинсон и др C# для профессионалов.
С. Робинсон и др C# для профессионалов.
Заказать на Озоне



Яндекс-цитирования

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

Результат выполнения программы
Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz

 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2005 сайт progs.biz
© 2002-2005 Алексеев Игорь