c#事件初探

事件是委托的一种特殊形式,当发生有意义的事情时,事件处理对象通知过程。
我们接着上一篇的假想场景,并且假设主办方将参会者分两组进行发言,按照事件的方式进行处理。好了,code is cheap,上代码了:
类图:

代码部分:

Code

从上面的代码中,我们可以看清楚事件的工作流程:发送器定义委托,声明事件;接收器注册事件处理程序(speak)到事件中去;发送器状态改变发出“通知”时,事件触发,注册事件的各个接收器及时“获取”消息,处理相应程序,如发言(speak)。如果我们在Java类的构造函数中注释掉”sponsor.programLs += this.Speak;“这一行,那么这个接收器(java)也就不会收到通知,并发言(speak)了。
我们经常在c#程序中看到如:
    protected void Page_Load(object sender, EventArgs e)
    {
    }
这样的事件形式。最后,我们来改造之前的代码,也模仿一下ms的优雅的写法:

Code

关于事件和委托,本篇和上一篇不过是按照自己的思路入门介绍一下,高手不值一哂。读者可以参考网上无数高明的文章。

posted on 2009-03-22 17:28  JeffWong  阅读(680)  评论(0编辑  收藏  举报