我看C#与.net4高级程序设计时遇到一个问题,上面说事件是为了节省委托的键入时间,貌似因为给委托添加和删除方法要费时间,但是好像委托和事件都可以使用+=机制,所以不太明白委托和事件到底有什么不一样(有可能是我看的不精),请帮忙给我讲解一下,最好说明一下什么时候用委托,什么时候用事件,我把委托和事件中的示例代码中的event全换成了new,运行结果好像没什么不一样,所以特别迷惑,3q
事件相当于一个特殊的委托
委托和事件没有可比性,因为委托是类型,事件是对象,因为对于事件来讲,外部只能“注册自己+=、注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法。事件只能add、remove自己,不能赋值。事件只能+=、-=,不能=、不能外部触发事件。我写篇笔记你看看就明白了。