日期:2014-05-16  浏览次数:20502 次

关于C#中delegate委托,到底有何好处,举个例子说说吧
看了半天的有关委托方面的知识,可还是一知半解。还有这句话是何含义?
“如果要引发事件,类可以调用委托,并传递所有与事件有关的参数。”
举个例子最好啦
------解决方案--------------------
通过button的click事件联想
------解决方案--------------------
委托的主要好处是可以把方法作为参数/属性来赋值或传递。事件是委托的一种具体应用。委托可以理解为一种接口,具体的方法实现这个接口,在开发阶段只需要关心委托的定义就可以调用,而不用关心它如何实现的或者在哪里实现的。
------解决方案--------------------
就像那2楼说的,通过理解Button.Click事件的整个过程就会明白委托和事件了,不过得看下自定义控件,页面生命周期,回发,观察者模式,假以时日,委托和事件也就会一点点明白了。

ASP.NET WEBFORM中很多用到事件的地方,看看还是有帮助的。
很多ASP.NET程序员,觉得拖控件被人家看不起,还没弄懂委托和事件,就直接转MVC,有点可惜了。
------解决方案--------------------
可以当作变量来传递,可以放到数组里,还可以异步调用
多播委托可以调用多个方法
委托的协变性和逆变性能简化变成
------解决方案--------------------
其实简单的说 委托和事件是相互协作的

为什么要委托

有些接口是在框架中写好,起到通知作用,具体的事件内容在委托中定义即可,即客户端实现