流星

我的生活我做主

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
原文:
 写了很长时间.net程序,最近对委托和事件有了一个新的理解.其实说穿了,事件只是委托的一个特殊形式.委托能实现的,事件也能实现.同理把事件代码中的event去除掉,变成委托,代码也不会出现问题.为什么微软定义一个事件关键字呢?我的理解是,当使用event关键字,标识一个事件时,事件成员不能使用赋值将委托链表中的其他代码注册的方法去除掉.这样会破坏订阅的完整性,当用event标识后,使用事件时,只能使用+=或-=来添加和删除订阅.保证一行代码访问事件时不会产生误操作.同时在asp.net中,使用事件,框架会解析页面标签中的OnEventName属性,将属性值注册到事件链中去.这些都是框架上做的一点代码转换,希望我的理解,能给大家一点提示.也不知道理解是否正确.欢迎大家指导.

源文:http://smartcoffee.cnblogs.com/archive/2006/02/13/329919.html

个人意见:
    本人测试委托也可用+=、-=来处理,只所以加event标识,只是为了设计器识别而已。
我也是在浏览一篇相关文档时,发现作者对委托、事件的区别有不可理解的地方时,才一探究竟的,哈哈。大家多评评,概念多澄清一些的好。
posted on 2007-01-26 09:24  flowstar  阅读(1166)  评论(1编辑  收藏  举报