首页 新闻 会员 周边 捐助

.net委托的+=和-=有区别吗?

0
悬赏园豆:30 [已关闭问题]

如题。

到底有没有区别啊?

往边界的主页 往边界 | 初学一级 | 园豆:6
提问于:2010-02-02 13:18
< >
分享
其他回答(7)
1

区别相当大...

+=是用来绑定方法

-=是用来取消绑定

eg: mydelegate -= aMethod

就是取消绑定aMethod ,当然你可能还绑定了别的方法,-=就是用来针对性取消的。

江振 | 园豆:205 (菜鸟二级) | 2010-02-02 13:22
0

+=增加事件

-=移除事件

Wishbay | 园豆:350 (菜鸟二级) | 2010-02-02 13:42
0

一个是在委托链中增加事件,另外一个移除

紫色永恒 | 园豆:844 (小虾三级) | 2010-02-02 15:39
0

同上,这个在委托中有讲,是比较难的东东,多看几遍

小时候 | 园豆:205 (菜鸟二级) | 2010-02-02 19:56
0

这是构造和移除委托链的简单写法,参考http://www.cnblogs.com/kirinboy/archive/2009/08/28/intensive-delegate-2.html

麒麟.NET | 园豆:3614 (老鸟四级) | 2010-02-03 14:10
0

1   .net中的一个委托类型实例可以保存多个方法。可以把多个相同签名的委托类型实例进行相加,相加以后的结果就是多个方法的合并。

  • 在委托类型实例的内部,有一个列表,这个列表保存了所有持有的方法。可以保存多个方法的委托类型被称做多播委托。我们在现实中使用的委托类型都是多播委托。
  • 当我们调用一个多播委托类型的实例时,会依次执行该委托实例所持有所有方法。
  • 可以使用+=把一个委托类型的实例或方法附加到现有的一个委托类型实例上。

2   可以使用+=把一个委托类型的实例或方法附加到现有的一个委托类型的实例上。

3    可以使用-=从一个委托类型的实例中移除指定的方法。前提是要移除的方法必须在该委托的实例中存在。

大鹏展翅 | 园豆:210 (菜鸟二级) | 2010-02-04 13:41
0

这两个一个是添加委托,一个是减少委托

Virus-BeautyCode | 园豆:1619 (小虾三级) | 2010-02-04 14:14
0

+=  实际是 Delegate.Combine()

-=   实际是Delegate.Remove()

雪中风筝 | 园豆:191 (初学一级) | 2012-07-06 14:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册