有了委托为什么还要有事件?

nuaalfm 2006-10-22 01:28:42
我觉得委托可以代替事件,.net为什么还要设计出事件呢,哪位说说委托和事件的区别,事件比委托多了什么好处?
...全文
367 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Muf 2006-10-23
  • 打赏
  • 举报
回复
delegate,估计在C#中是用来替换函数指针这一概念的。也就是说,用于间接调用函数的东西,所以称委托。

事件,则是用于某件事情发生时,对所有对此事感兴趣的delegate进行调用。

由此可见,事件是一个容器,可以容纳许多delegate。当发生事件调用时,容器内的所有delegate都会被调用。

而delegate则仅仅表示所委托的函数的个体。
happyhippy 2006-10-23
  • 打赏
  • 举报
回复
有了C为什么还要有C++/Java/C#?
ms44 2006-10-23
  • 打赏
  • 举报
回复
接口中不能用delegate ,但是event 可以。
diandian82 2006-10-23
  • 打赏
  • 举报
回复
事件是使用委托实现的,估计是要有这个概念把
lovvver 2006-10-23
  • 打赏
  • 举报
回复
用委托和事件就好比3层甚至多层开发,灵活。
而你也可以只用委托,在委托里来写具体动作实现,那就好比抛弃了“层”的概念。
好坏之处,一目了然。
www_123du_com 2006-10-23
  • 打赏
  • 举报
回复
six_six_2005(六六) ( ) 信誉:100 Blog 2006-10-22 16:19:00 得分: 0


写了event关键字后会比委托多两个限制;
1.激发事件只能在声明事件的类里;
2.增加事件处理只能用+=,而不能用=;
______________________________________

同意,多了些限制。
kknd2005 2006-10-23
  • 打赏
  • 举报
回复
机制和实现么

委托不光用于事件
BSC 2006-10-23
  • 打赏
  • 举报
回复
委托就是回调函数实现的一种机制
Nara 2006-10-22
  • 打赏
  • 举报
回复
如果你定义了回调函数就再不去理它,那它能有什么用呢?
six_six_2005 2006-10-22
  • 打赏
  • 举报
回复
写了event关键字后会比委托多两个限制;
1.激发事件只能在声明事件的类里;
2.增加事件处理只能用+=,而不能用=;
xyq1986 2006-10-22
  • 打赏
  • 举报
回复
用event好像只能+=和-=,而用delegate就可以乱改了
yumanqing 2006-10-22
  • 打赏
  • 举报
回复
委托是事件的基础
sumoon2002 2006-10-22
  • 打赏
  • 举报
回复
你还是问微软吧.

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧