昨晚上看了一下C#的事件,今早上总结一下。
在类中使用 event 关键字声明一个事件,事件属于某个类。
还要使用委托,委托跟event 的关系就是,event 发生时,委托实例 去响应。
猫叫和老鼠跑,这两个动作分别属于两个类,那么这两个类怎么建立关系呢?
我想到了Qt的信号与槽,猫叫的信号要通过connect函数与老鼠跑的slot函数连接起来。当信号发生时,slot就被触发。
C#的事件 也是提供了这样一个机制,就是把event对象与委托的实例通过+=联系起来。
winform中自动生成的双击响应函数等,都包括两个参数,这两个参数实际上是为了通用性而写的,参数一是发送者,参数二是传递的数据。
要创建一个事件驱动的程序需要下面的步骤:
1. 声明关于事件的委托;(发布者)
2. 声明事件;(发布者)
3. 编写触发事件的函数;(发布者)
4. 创建事件处理程序;(订阅者)
5. 注册事件处理程序;(主程序或订阅者)
6. 在适当的条件下触发事件。(主程序)