问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#回调函数这方面我一直不是很懂,是先定义一个回调函数,但是具体实现...

发布网友 发布时间:2022-05-06 09:51

我来回答

3个回答

热心网友 时间:2022-04-24 16:26

“回调函数”这个术语是从Javascript这类函数式编程语言里产生的,C#里并没有回调函数这一概念,所以你的代码里无论是谁作的注释,可见他并不太喜欢C#。
CALLBACK是一个delegate,中文教材一般翻译为“委托”,其实就像C语言里指向函数的指针(这是个比喻,方便你理解,但我建议你不要这样固化概念,因为委托还有很多与指针完全不同的地方),CALLBACK的定义只体现了这样一件事:它可以代表一个方法,这个方法如同声明它时候指出的那样,接受两个int参数,并返回一个bool,仅此而已。换句话说,CALLBACK代表了一种明确的方法签名,即任何以两个int为形参,并返回bool的方法,它都可以“代表”(即委托给它)。但至于这样的方法到底是谁,具体怎么用这两个参数,根据什么返回bool,那是被委托的方法自己要实现的事情(正如你的Report方法所做的事情)。
CALLBACK myCallBack = new CALLBACK(Report);
就是使用委托的关键,它的意思是:myCallBack作为Report的委托(注意Report并没有执行,只是说谁调用myCallBack.Invoke()方法,谁就实际上执行了Report,你可以想像,EnumWindows既然接受了myCallBack,肯定会由它调用),被传送给了EnumWindows,EnumWindows并不知道自己执行的到底是哪个具体的方法,它只需要知道myCallBack需要两个int作为参数,它也会提供这两个参数,然后等着myCallBack所代表的方法执行完毕,再还给它一个bool,然后EnumWindows拿着这个bool去做别的事,就再没myCallBack什么事儿了。不知道这样说,你会不会理解得更清楚一点。

热心网友 时间:2022-04-24 17:44

CALLBACK 是委托类型,定义的时候会delegate这个关键字,其作用你可以理解为将与之有相同参数列表和返回值的函数作为引用,将其作为参数传入其他方法来实现回调功能。
CALLBACK myCallBack = new CALLBACK(Report)这里创建了这个委托对象,将其指向了Report方法,而不是将一个bool变量传给CALLBACK。
这里的主要作用就是当你在访问EnumWindows这个方法时,会在调用EnumWindows过程中(一般都是结尾处,当然也可以在EnumWindows代码块的任意地方)来调用Report方法,而不是等EnumWindows执行完毕再自己手动调用Report

热心网友 时间:2022-04-24 19:19

回调是各种语言通用的概念,就是A调用B,并传给B一个回调函数f,B做完了改做的事,就调用f(目的是通知A已完成,返回值等)
上面的delegate就是回调函数,EnumWindows就是调用了操作系统的api(C/C++),在底层代码里会调用这个delegate
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
牡丹叶子枯了怎么办 牡丹枯叶怎么回事 "他同情冤魂、惩办恶人,既有同情心又主持公道,既可爱又恐怖” 冯宝成传销诈骗邪教组织 冯保成团队,传销诈骗,家人深陷其中,求助。 南朝词臣北朝客,归来唯见秦淮碧。 池台竹树三亩馀至今人道江家宅的意思 池台竹树三亩馀至今人道江家宅是什... 高效、加分学习工具——小小答题错题本上线了 如何将三张合在一起的图片合并 砂锅红烧肉的做法 最正宗的做法_砂锅红烧肉怎么做 砂锅版红烧肉做法: 财务开票和不开票含税和不含税是什么意思 c语言中有关回调函数的概念。 C语言回调函数 函数指针中的回调函数(C语言版本) 现在微信朋友圈传说:从八月一日起,凡是转发动态图片或小红心丶花朵要收费,_百度问一问 含税开票和不含税开票区别? c语言的回调函数的问题 恢复浏览器历史记录 c语言回调函数究竟有什么用处?我觉的用普通的函数调用替换也可以,谢谢 一般纳税人开具的含税发票与不含税发票有什么区别 碰碰香真的会驱蚊么 开增值税专用发票含税和不含税的区别 360浏览器的下载记录我删除了能找回来吗 C语言中的回调函数实在搞不懂 碰碰香能驱虫驱蚊么 C语言的回调函数 开发票时价格选择含税和不含税有什么区别 什么是C语言的回调函数?具体怎么用呢? 碰碰香能驱蚊吗。。。 扩频技术使用同一频率进行通信,为什么不会产生干扰呢 开票时有含税和不含税的金额,这两种有什么区别呢?要怎么选择呢 开票子系统里的单价,含税和不含税有什么区别 回调函数的意义 开票系统含税发票和不含税发票的区别 在C++中回调函数的作用? 开发票含税跟不含税是什么意思 海尔统帅热水器又没有出过事故 说说海尔电热水器安全系数怎么样? 海尔热水器安全问题 微信上28.8加满5000人是怎么回事? 情侣最好的纪念日在那一天最好 房地产产品定位的方法有哪些 恋人纪念日都有哪些 情侣多少天算纪念日 貂皮大衣咋洗 谁知道怎么使用红外线进行数据传输呀? VS2019里的数据库SQL? 红外传输速度到底有多快 在Windows中如何利用电脑实现红外线传输功能? - 信息提示