前言:CLR事件模式建立在委托的基础上,委托说调用回调方法的一种类型安全的方式。
我个人觉得事件本质就是委托,所以把委托弄清楚,只要知道事件基本语法就会使用了(如果说到线程安全,我个人觉得这个应该和线程一起去讨论),所以这篇只做一个简单的时间介绍和写一些我看到的或我用到的一些代码。
EventHandler
public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
上面是C#的源码,超简单有木有(还是委托)。
有两个类型:
1.Object sender :事件源
2.TEventArgs e :泛型,这里可以自定义事件所需要的额外参数。
既然知道基本的语法,我们来看看怎么写。
internal sealed class NewMailEventArgs : EventArgs {
private readonly String m_from, m_to, m_subject;
public NewMailEventArgs(String from, String to, String subject) {
m_from = from; m_to = to; m_subject = subject;
}
public String From { get { return m_from; } }
public String To { get { return m_to; } }
public String Subject { get { return m_subject; } }
}