委托求助。VB2005
看到有的教程上说,事件是一种委托,+=运算符也是一种委托,请问这是怎么会事呢?有点糊涂,委托的用法我会,但就是不明白+=运算符怎么也是委托呢?
我以前发了个帖子询问,这是那个朋友的解释,里面的+=运算符为什么也是委托呢?
下面是他们解释的,我不明白
们为什么要用委托了, 和我们中文的 "委托 "你办的事一个意思,
你的事情装(封装)在你的函数(myFunction)里 , 委托张三(对象 ZhangSanObject)帮你做 ,
==========================================================
Object.HelpOthersHandle += new EventHandle(myFunction);
==========================================================
你的函数(myFunction)签名要与 ZhangSanObject的委托签名一致。
张3也可以替李4/王5做事,只要他们的事情与 ZhangSanObject的委托签名一致
.Net delegate定义可以是任意的函数签名。
但event是有要求,是这个签名(object sender, EventArgs e)的delegate
谁能解释明白+=运算符的委托问题,我马上就给分
[解决办法]
委托的+=运算符
-------------
不太专业的解释(个人理解):
可以理解为把一个方法的地址传给了对象,使得对像可以通过这个地址调用方法
[解决办法]
去C#版里找找.我记得看到过详细些的解释.
这里面, = 左边的调用,等于去调用右边的方法. += 就是,你再多调一下这个方法吧.
[解决办法]
委托允许进行多路广播委托
Object.HelpOthersHandle += new EventHandle(myFunction) 可以看成
Object.HelpOthersHandle=system.delegate.combine(object.helpothershandle,new EventHandle(myFunction))
'+= '仍然是运算符,不属于委托,但有可能在delegate类中重载了 '+= '运算符.
以上看法纯个人经验认为,不一定准确.
[解决办法]
学习中!