delegate(委托)的本质是什么?

yuchang1980 2006-06-13 02:36:48
一个函数被声明成delegate以后,还能实例化成一个对象。然后这个对象还能拥有一些方法,比如能开始一个调用(BeginInvoke),结束一个调用(EndInvoke)等。委托还能加上event关键字声明成一个事件,在某个地方被触发。
那么将一个函数声明成delegate(委托)的本质到底是什么?
...全文
2692 91 打赏 收藏 转发到动态 举报
写回复
用AI写文章
91 条回复
切换为时间正序
请发表友善的回复…
发表回复
k80179279 2010-06-10
  • 打赏
  • 举报
回复
更方便的函数指针
losedxyz 2006-11-19
  • 打赏
  • 举报
回复
mark
lizhizhe2000 2006-11-19
  • 打赏
  • 举报
回复
函数指针
Jackile 2006-11-19
  • 打赏
  • 举报
回复
一个函数声明成delegate(委托)的本质到底是什么?

一个函数声明成delegate(委托)的本质是该函数是个管家婆,任何函数的调用只需调用他就行了。
magicsnake 2006-11-19
  • 打赏
  • 举报
回复
先记录
zerg318 2006-11-19
  • 打赏
  • 举报
回复
收藏起来
兔子-顾问 2006-11-19
  • 打赏
  • 举报
回复
可以当函数指针来用。但稍微有不同。你可以先忽略这个不同,等用熟练了再去了解委托的基类。就像.net的其他功能一样,看上去和其他语言的某个功能蛮像,但又有不同。这样的功能,你都当成你熟悉的功能来用即可,到你用的熟练的时候,你自然知道不同之处何时使用了。
shoushii 2006-11-18
  • 打赏
  • 举报
回复
mark
Ivony 2006-11-18
  • 打赏
  • 举报
回复
委托类型确定了委托能接受函数的签名,委托实例则是对一个函数的包装。
委托的声明与函数的声明很相像,但委托的声明是声明一个类型。
yzx8474711 2006-11-18
  • 打赏
  • 举报
回复
学习ING。。。
six_six_2005 2006-10-21
  • 打赏
  • 举报
回复
Professional C#里是说,委托两种用途:
1.用做回调
2.事件机制

我觉得其本质是OS在后台生成一个线程池线池,由其等待用户事件的发生.而不是用户线程自己去等待.

beginner30000 2006-10-21
  • 打赏
  • 举报
回复
函数指针

委托接受的函数的签名必须与委托的签名一致
rgwfeng2 2006-10-21
  • 打赏
  • 举报
回复
mark
cctaiyang 2006-09-08
  • 打赏
  • 举报
回复
本质就是函数指针
dlzhangln 2006-09-08
  • 打赏
  • 举报
回复
To pantian(香草园主)
------------------------
讨论本身没有错,而且是有必要的。只是当我从头到尾仔细看过这个帖子之后,不禁多了几分唏嘘呵遗憾,多少所谓高人闻题目而闪人,多少像我们一样对委托如此模糊的人可能继续模糊下去,有多少人会继续发这样的帖子,又有多少人会继续回这样的帖子呢......
感谢楼主,期待高手!
xiaoxiangx 2006-09-08
  • 打赏
  • 举报
回复
好大的雾啊~~~
ZJguhong 2006-07-29
  • 打赏
  • 举报
回复
upupup
smartstar2005 2006-07-29
  • 打赏
  • 举报
回复
委托的本质就是将函数的调用函数化:就是你可以根据你的需要动态的设定它调用哪个函数。

我们都知道,Windows控件都带有很多的事件,这些事件的就是通过委托来实现的。例如你要为一个Button(就叫btnTest,但你要知道系统并不知道你要起这个名字)写一个单击事件,那么系统会生成一个btnTest_Click(....)函数,根据你的Button的名字不一样,这个函数的名字也不一样。所以,系统并不能知道当你点了btnTest后就调用btnTest_Click函数。委托就实现了这个功能................

具体怎么实现的我也不知道了...........*_*
szc21 2006-07-28
  • 打赏
  • 举报
回复
指针而已,一般把函数做为参数传递给别的方法,例如,线程.在C++里面用的是指针,传递函数的地址,C#定义为委托,实现同样的目的
sky 2006-07-28
  • 打赏
  • 举报
回复
唉,C#都出来N多年了,大家现在才来讨论delegate,厉害,看看
加载更多回复(71)

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧