事件与委托的区别

  • 格式:pdf
  • 大小:52.14 KB
  • 文档页数:1

事件与委托的区别

 写了很长时间.net程序,最近对委托和事件有了⼀个新的理解.其实说穿了,事件只是委托的⼀个特殊形式.委托能实现的,事件也能实

现.同理把事件代码中的event去除掉,变成委托,代码也不会出现问题.为什么微软定义⼀个事件关键字呢?我的理解是,当使⽤event关

键字,标识⼀个事件时,事件成员不能使⽤赋值将委托链表中的其他代码注册的⽅法去除掉.这样会破坏订阅的完整性,当⽤event标识

后,使⽤事件时,只能使⽤+=或-=来添加和删除订阅.保证⼀⾏代码访问事件时不会产⽣误操作.同时在asp.net中,使⽤事件,框架会

解析页⾯标签中的OnEventName属性,将属性值注册到事件链中去.这些都是框架上做的⼀点代码转换,希望我的理解,能给⼤家⼀点提

⽰.也不知道理解是否正确.欢迎⼤家指导.