C#中的事件总结

事件的声明

          public event 委托名 时间名

事件的注册和移除

          事件名 += 或 -=

                在事件的所有类的外面,只能用以上两个运算符

 事件的发生(激发)

           事件名(参数列表)

           相当于回调所注册的函数

 以网络爬虫为例子: 

                                            具体的六部曲为

                   公用的:  

                              声明事件参数类  : class xxxEventArgs{}

                              声明委托: delegate void xxxEventHandler(obj,args)

                   在一个类中:

                              定义事件: public event 类型 名称

                              发生事件:事件名(参数)

                   在别的类中:

                              定义一个方法:void 方法名 (obj,args)

                              注册一个事件:xxx事件+=new 委托(方法名)

                                             具体的代码为

 

                 事件比委托更加的复杂:

                 可以定义事件存取器

                                修饰符 event 委托类型名  事件名

                               {

                                          add{e+=value;

                                          remove{e-=value}}                                }

               总结起来:

                             事件是一种消息机制

                             事件源调用事件,别的类注册事件 

                             事件的类型是一个委托

               事件的必要性:

                               我们之前提到过的,很多面向对象的语言中对象有两个基本要素(属性,方法),而C#中则增加了一个要素(属性,方法,事件),这个就涉及到设计模式observer设计模式,是一种一对多的设计模式,当一个对象的状态改变时,其他依赖于它的对象会被自动的告知并更新,是一种松耦合的设计模式,事件和委托的使用感觉就是实现了这种模式,这样类与类之间的划分更加的清晰,安全性高,便于维护,

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值