委托用=进行注册有什么不妥吗?
一般情况下, 我们仅仅需要 一个委托方法内 有一个 方法实现即可.
那么, 为什么语法上 一般都是用 += 作为范例呢?
我很久以前测试过 = 也是可以的.
但是用 = 会有什么不好呢?
另外,'='和'+='分别 用于什么场景?
------解决方案--------------------=用于赋值
+=一个是实现相加后赋值,一个是定义委托,至于为什么使用+=,这是微软就这么定义的
------解决方案--------------------+=我的理解是实现委托链,即一个委托实现多个方法.
------解决方案--------------------我只说一句:所有委托都是继承自MultiCastDelegate,所以使用+=的方式进行委托的挂接。
------解决方案--------------------http://baike.baidu.com/view/1935199.htm#3
再看看把delegate1 声明为 public 会怎样?结果就是:在客户端可以对它进行随意的赋值等操作,严重破坏对象的封装性。
最后,第一个方法注册用“=”,是赋值语法,因为要进行实例化,第二个方法注册则用的是“+=”。但是,不管是赋值还是注册,都是将方法绑定到委托上,除了调用时先后顺序不同,再没有任何的分别,这样不是让人觉得很别扭么?
------解决方案--------------------这个就跟int a=0;a+=1是一个道理
------解决方案--------------------