首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

委托。VB2005

2012-03-05 
委托求助。VB2005看到有的教程上说,事件是一种委托,+运算符也是一种委托,请问这是怎么会事呢?有点糊涂,委

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

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

热点排行