Подписка на событие
class X
{
public event EventHandler Step;
public void Run()
{
for (int i = 1; i < 5; i++)
{
Thread.Sleep(500);
if (Step != null)
{
Step(this, EventArgs.Empty);
}
}
}
}
class Program
{
static void Main(string[] args)
{
X x = new X();
x.Step += x_Step;
x.Run();
}
static void x_Step(object sender, EventArgs e)
{
Console.WriteLine("step");
}
}
Шаблон обработчика события EventHandler: void Объект_Событие(object sender, EventArgs e)
Подписка на событие производится операцией += , отписка операцией -=.
Экземпляры делегатов разных типов – синглетоны.
Для событий не определена операция присвоения.
Класс X периодически издает событие Step, а класс Program слушает это событие.