日期:2014-05-17  浏览次数:20843 次

委托用=进行注册有什么不妥吗?
一般情况下, 我们仅仅需要 一个委托方法内 有一个 方法实现即可.

那么, 为什么语法上 一般都是用 += 作为范例呢?

我很久以前测试过 = 也是可以的.

但是用 = 会有什么不好呢?

另外,'='和'+='分别 用于什么场景?

------解决方案--------------------
=用于赋值
+=一个是实现相加后赋值,一个是定义委托,至于为什么使用+=,这是微软就这么定义的
------解决方案--------------------
+=我的理解是实现委托链,即一个委托实现多个方法.
------解决方案--------------------
我只说一句:所有委托都是继承自MultiCastDelegate,所以使用+=的方式进行委托的挂接。
------解决方案--------------------
http://baike.baidu.com/view/1935199.htm#3

再看看把delegate1 声明为 public 会怎样?结果就是:在客户端可以对它进行随意的赋值等操作,严重破坏对象的封装性。
  最后,第一个方法注册用“=”,是赋值语法,因为要进行实例化,第二个方法注册则用的是“+=”。但是,不管是赋值还是注册,都是将方法绑定到委托上,除了调用时先后顺序不同,再没有任何的分别,这样不是让人觉得很别扭么?
------解决方案--------------------
这个就跟int a=0;a+=1是一个道理
------解决方案--------------------
探讨
我只说一句:所有委托都是继承自MultiCastDelegate,所以使用+=的方式进行委托的挂接。