返回信息流.net中已经有了委托,事件内部也是用委托实现的,那么事件有其存在的必要性么?
这是一条镜像帖。来源:北邮人论坛 / dot-net / #120同步于 2009/11/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
【求助】委托和事件
snoopyboy
2009/11/28镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 snoopyboy 的大作中提到: 】
: .net中已经有了委托,事件内部也是用委托实现的,那么事件有其存在的必要性么?
赞,这坑挖得太有水准了......
委托定义相当于类定义,可以放在任何地方,你可以在任何地方定义委托,这样是不安全的,因为这样别人很容易就调用到你的委托,并且你的委托很容易给注销掉,使用事件,可以适当规范委托的使用。
【 在 snoopyboy 的大作中提到: 】
: .net中已经有了委托,事件内部也是用委托实现的,那么事件有其存在的必要性么?
委托是轮子
事件是车子
独轮车。自行车。三轮车。四轮车,火车。。。。晓得?
这个是很细节的东西,
.NET框架要讲到一些,提出event的理由之一就是为了弥补delegates的缺陷嘛
【 在 whatever (无聊的飘啊飘) 的大作中提到: 】
: 这就是一坑。当年我还专门研究过这东西来着
事件就是通过委托来实现的啊。
委托不就是函数指针么。
这就容易理解了啊。。。
【 在 snoopyboy 的大作中提到: 】
: .net中已经有了委托,事件内部也是用委托实现的,那么事件有其存在的必要性么?
lz问的是更深层的东西
veryday BUPT & BYR) 的大作中提到: 】
: 事件就是通过委托来实现的啊。
: 委托不就是函数指针么。
: 这就容易理解了啊。。。
: ...................
不学c#好几年。。。
lz的疑问不在于委托跟事件的区别,而在于质疑其中之一的存在性
想要解决这个问题,应该用人的思维去考虑。计算机科学本身就是一门人造科学,所以用人的思维去理解最好不过。况且,虚拟机本来就是人造的,既然是人造的规则,那当然要根据人的感情习惯去编写虚拟机的实现机制了,所以,要用人的概念去理解。
委托,顾名思义,就是把自我需要处理的事情提交给了虚拟机,虚拟机在相应的合理的时刻就会帮助咱们完成相应的事情,注意,这时候强调的是虚拟机的动作。
而事件呢,却恰恰相反,虚拟机仅仅只是把事件扔给了我们,我们接受这个事件,然后用我们自己的处理过程解决这个事件,注意,这时候强调的是自我。
所以,抽象来讲,之所以要出现这么两个概念的根本原因是, 区分解决问题的主动方。所以,两者都有存在的必要。
。。。别听我瞎掰,我已经好几年没玩c#,在此扯淡一下,大家笑一笑就ok了~~~