事件是委托的一种特殊形式,当发生有意义的事情时,事件处理对象通知过程。
我们接着上一篇的假想场景,并且假设主办方将参会者分两组进行发言,按照事件的方式进行处理。好了,code is cheap,上代码了:
类图:
代码部分:
Code
从上面的代码中,我们可以看清楚事件的工作流程:发送器定义委托,声明事件;接收器注册事件处理程序(speak)到事件中去;发送器状态改变发出“通知”时,事件触发,注册事件的各个接收器及时“获取”消息,处理相应程序,如发言(speak)。如果我们在Java类的构造函数中注释掉”sponsor.programLs += this.Speak;“这一行,那么这个接收器(java)也就不会收到通知,并发言(speak)了。
我们经常在c#程序中看到如:
protected void Page_Load(object sender, EventArgs e)
{
}
这样的事件形式。最后,我们来改造之前的代码,也模仿一下ms的优雅的写法:
Code
关于事件和委托,本篇和上一篇不过是按照自己的思路入门介绍一下,高手不值一哂。读者可以参考网上无数高明的文章。
本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/03/22/1418956.html,如需转载请自行联系原作者