一些初学者在学习事件的时候总觉得很难,其实可以从简单入手,虽然简单,但却包含了事件的整个机制流程等,要多想,再进行扩展,学起来就容易些了。
这个例子简单到只有两个类,一个事件发送类Sender,和一个事件接收类Receiver。Sender负责发送一个事件Event,Receiver负责接收和处理这个事件。
先来看Sender类:
public class Sender
{
public delegate void EventHandler(object sender);
public event EventHandler Event;
{
Console.WriteLine("Trigger an event.");
Event(this);
}
}
{
public delegate void EventHandler(object sender);
public event EventHandler Event;
public void TriggerEvent()
{
Console.WriteLine("Trigger an event.");
Event(this);
}
}
先定义一个delegate EventHandler,再定义一个event Event并把它和delegate EventHandler关联起来。
接着触发事件,Event(this);
再来看Receiver类:
class Receiver
{
public Receiver(Sender sender)
{
sender.Event +=new Sender.EventHandler(OnEvent);
}
private void OnEvent(object sender)
{
Console.WriteLine("Received and handled an event." );
Console.Read();
}
}
{
public Receiver(Sender sender)
{
sender.Event +=new Sender.EventHandler(OnEvent);
}
private void OnEvent(object sender)
{
Console.WriteLine("Received and handled an event." );
Console.Read();
}
}
将Sender类触发的事件Event链入事件处理队列,指定具体处理事件的方法,处理事件。
整个过程就是这么简单,为了简单,没有在事件中设置参数,处理程序也都只是打印一句话。但可以通过这个简单的例子,好好整理一下事件的使用。