读书人

委托。VB2005

发布时间: 2012-03-05 11:54:01 作者: rapoo

委托求助。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类中重载了 '+= '运算符.

以上看法纯个人经验认为,不一定准确.
[解决办法]
学习中!

读书人网 >VB Dotnet

热点推荐