smartcoffee(沉思的猫)

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