EventArgs имеется одно поле Empty типа static, которое представляет собой объект типа EventArgs без данных.

Ниже приведен пример программы, в которой формируется .NET-совместимое событие.

// Пример формирования .NET-совместимого события, using System;

// Объявить класс, производный от класса EventArgs. class MyEventArgs : EventArgs { public int EventNum;

}

// Объявить тип делегата для события.

delegate void MyEventHandler(object source, MyEventArgs arg);

/’/ Объявить класс, содержащий событие, class MyEvent {

static int count = 0;

// Этот метод запускает событие SomeEvent. public void OnSomeEvent()    {

MyEventArgs arg = new MyEventArgs();

if(SomeEvent != null) { arg.EventNum = count++;

SomeEvent(this, arg);

}

}

}

class X {

public void Handler(object source, MyEventArgs arg) { Console.WriteLine('Событие ' + arg.EventNum +

' получено объектом класса X.'); Console.WriteLine('Источник: ' + source);

Console.WriteLine();

}

}

class Y {

public void Handler(object source, MyEventArgs arg) { Console.WriteLine('Событие ' + arg.EventNum +

' получено объектом класса Y.'); Console.WriteLine('Источник: ' + source);

Console.WriteLine() ;

}

}

class EventDemo6 { static void Main() {

X obi = new X ();

Y ob2 = new Y ();

MyEvent evt - new* MyEvent ();

// Добавить обработчик Handler() в цепочку событий, evt ..SomeEvent += obi. Handler; evt.SomeEvent += ob2.Handler;

// Запустить событие, evt.OnSomeEvent(); evt.OnSomeEvent();

}

}

Ниже приведен результат выполнения этой программы.

Событие 0 получено объектом класса X Источник: MyEvent

Событие 0 получено объектом класса Y Источник: MyEvent

Событие 1 получено объектом класса X Источник: MyEvent

Событие 1 получено объектом класса Y Источник: MyEvent

В данном примере создается класс MyEventArgs, производный от класса EventArgs. В классе MyEventArgs добавляется лишь одно его собственное поле: EventNum. Затем объявляется делегат MyEventHandler, принимающий два параметра, требующиеся для среды .NET Framework. Как пояснялось выше, первый параметр содержит ссылку на объект, формирующий событие, а второй параметр — ссылку на объект класса EventArgs или производного от него класса. Обработчики событий Handler (), определяемые в классах X и Y, принимают параметры тех же самых типов.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату