请问 委托(delegate) 有什么用途呢? 谢谢
请问 委托(delegate) 有什么用途呢? 谢谢
原来c++好像没见过
可能是自己学得太少
谢谢指教
问题点数:10、回复次数:14Top
1 楼fangxinggood(JustACoder)回复于 2006-05-03 20:52:44 得分 0
相当于C++中的函数指针~~, 当你设计的方法中,需要调用别的方法,但是调用的方法名还有可能发生变化,那么就可以使用代理(委托)。通过参数传递运行时需要调用的方法。Top
2 楼kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net)回复于 2006-05-03 21:30:51 得分 0
和C++的函数指针相似。可以用来在方法中传递方法Top
3 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-03 21:58:11 得分 0
现在要为button1编写事件处理的代码
假设需求:button1的事件处理代码有可能是f1(),有可能是f2()
思路:则根据情况为button.OnClick 赋值f1() , f2() ...
如何做到?
需要一种机制:通过"代表函数的变量",即委托..Top
4 楼namhyuk(namhyuk)回复于 2006-05-04 04:39:22 得分 0
委托还有一个实用的功能:支持异步执行。Top
5 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-05-04 08:03:47 得分 0
委托是通过反射来执行方法的。相当于 方法.Invoke(对象,参数)。
并且委托不是方法,而是将方法作为自己的一个属性。显然它还有很多自己的属性、方法。
委托是强类型的。你能够定义一个委托方法的参数签名,然后胡乱给一个不同类型参数签名的方法吗?不能。
委托支持异步操作,自动使用系统线程池、并且返回线程的各种状态。
Event进一步扩展了委托。它不管理一堆委托,并且轮流调用各个委托。
委托不是C++中的指针。委托是准确的、面向对象的、接口非常具体的概念,不是一个危险的、“什么都能代表又不能保证其基本的接口协议”的指针Top
6 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-05-04 08:04:39 得分 5
它不管理一堆委托 --> 它不仅管理一堆委托Top
7 楼ahniyilin(决非偶然)回复于 2006-05-04 11:47:37 得分 0
呵呵!有什么用!我不清楚!
但最近两天在进行窗体间传值的时候用到了委托!
要自己写事件!
必须用到!Top
8 楼xhncmec(小王)回复于 2006-05-04 12:01:40 得分 0
在MFC中,是用映射,用宏来实现的。Top
9 楼boblaile(爱在13月32)回复于 2006-05-04 21:40:48 得分 0
看了半天一头的水Top
10 楼diandian82(点点(nothing))回复于 2006-05-04 21:56:26 得分 0
先看看别人的代码,知道怎么用就行了!以后再理解Top
11 楼luby(轻疯[在岁月无声的消逝里,轻轻的...我疯了。])回复于 2006-05-04 22:57:13 得分 0
这玩意的确有点玄。。。Top
12 楼xhncmec(小王)回复于 2006-05-05 12:02:14 得分 5
例如,控件button接收到的单击click消息,由委托负责转至主窗口中执行(通常是函数OnClick()),这种机制与MFC中的消息映射非常相像。委托有两个特点:监听、本身是对象。Top
13 楼pollini(nadir.O_o)回复于 2006-05-07 19:02:31 得分 0
我的理解是在后台调用前台的方法。作用就是封装吧。Top
14 楼chenanlin1981(小黑)回复于 2006-05-27 16:33:04 得分 0
sp1234讲得很透彻!Top




