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

请教C#回调函数的调用问题

发布网友 发布时间:2023-05-17 02:34

我来回答

1个回答

热心网友 时间:2023-09-11 04:15

其实在C#语言中,如果不考虑unsafe编程的情况下,C#已经不存在指针了!但是有一种情况很特殊——我们需要实现将一个成员方法(函数是不规则的称呼,面向对象中只有成员方法,没有函数的概念了)做为一个参数传入到另一个方法。
当然,在C/CPP中我们存在指针,把函数(或成员方法,面向过程语言或支持面向过程语言中存在函数或过程的概念)指针做为参数传递即可——这是一种典型的“传址”引用的方式,在C#没有指针的情况下想完成一个传址引用,ref/out只能传递参数变量,并不能将方法转换成地址传入另一个方法的参数(方法参数化),怎么办——委托!
其实说白了,委托就是一种特殊的“代理”形式,把一个成员方法代理成一个变量(delegate变量),可以直接进行调用(根据委托形式,可以找到委托中代理的具体成员方法)!
回调就是一个委托的特殊形式,如果说委托着重于说明“代理”调用的话,而回调则是着重说明成员方法的参数化(指针特性)。
很多个认为一个完整的委托是要有委托(delegate声明)和代理的方法(真正执行的方法),然后要求其形式完全一致,但是,由于C#语法糖的存在,我们还种一种特殊形式的委托——匿名委托!很多人很奇怪,为什么方法名参做为一个参数呢?其实就是匿名委托,传入并非方法名,而是方法名的匿名委托(委托没有名字,所以只需要传入方法名即可)!
不要以为你回调函数你传入的是方法名——因为匿名委托的原因,这个方法名被自动包装成了一个没有名字的委托!看起来是传入方法名——其实原理根本不是那么回事!
当然即使你理解成方法名也可以,但只是一种错误的理解。因为他与常规的委托着重点不同,委托着重于代理执行,用于编译时确认成员方法。而回调则是运行时确定成员方法,着重于指针形式,所以匿名委托足以使用,能让你更容易理解回调函数(好象是被调用对象在执行期间又重新调用了调用对象的某个方法,所以叫回调——执行绪再次调用主体成员方法——就是A对象调用了B对象的BMethod方法,而BMethod方法需要再调用A对象的某个成员方法AMethod,那么传入Amethod方法的匿名委托就是回调,当然如果C对象是A对象的一个属性或成员时,调用C对象的方法也是回调——A的某个对象属性的成员方法)
回调如果你把CallBack参数当做一个成员方法时,那么,回调方法的理解也会变得超简单。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
缺土的宝宝女孩名字车姓 推荐一些带有成字的女孩名字 江姓婴儿名字大全女孩2024龙宝宝 陌陌的安全等级和财富等级是什么 如何提高陌陌等级? 冰箱旧了是不是很耗电 手机号收不到LINE的手机验证码怎么办 注册line连我账号收不到验证码 日韩服属于哪里 lineplay进入别人家能说话吗 《一帘幽梦之白蓉》穆瞱小说txt全集免费下载 变瞱朱门喜有叁 视农工商贾田蚕 婚姻不久成佳偶 求嗣归房得美男 时空和生命是连续性的吗? 生命连续性是什么意思?! 做事靠能力,做人靠格局 这里的“格局”指什么意思 小米手机没有实体店,但还是有很多实体店,出售小米手机,而且价格很贵。这是为什么? 对,您可以说他是 孔夫子的“男女关系”观 林黛玉进贾府时,两个舅舅为什么都不见她? 男女之大防是什么意思 steam显示错误118怎么办? 房产证就我一个人为什么办理抵押贷款需要我先生签字? 抵押房子贷款为什么要用另一个房产证及户主的签名? 门经尺4米75怎么解释 【涨知识】外贸企业看过来,您知道在出口退税业务中*无电子信息怎么处理吗? 出口退税可以用进货凭证号查到报关单号吗 进货凭证号怎么填写 公司股东分红的会计分录怎么写? 股东分红会计分录是什么? 股东现金分红会计分录 insist on后面为什么接my或me而不接i 小红书商家发货要充单号花钱吗 钢结构加工中,弧形钢梁的验收规程标准是什么 就是验收允许尺寸偏差等 遗嘱继承子妹4个,另3人放弃继承去法院确权怎么收费? 遗产继承纠纷起诉书可以将不愿参加起诉的继承人写成第三人? 部分继承人起诉,部分继承人不起诉 我妈还活着,我弟逼我签了放弃继承我妈房子的产权,可以起诉对方吗? 交通事故中第三方死亡,主责方家属放弃遗产继承还可以起诉次责方吗? 取名叫无名的是什么心态 梦见了穿一件绿色新衣服的预兆 为什么滞后消费会影响劳动者的积极性?高中经济 求通俗说法! 汇美元中间行能否是韩国的银行 香港花旗银行的外汇中间行是啥银行 我的南京身份码全国通用吗 我的南京身份码有啥用 我的南京身份码可以上网吗 520=是我爱你、那620、720、820、920和1020呢是什么意思的谐音呢?620520呢? 9+620是什么意思 浙移集成是外包吗_百度问一问 张国昀多少岁了?双环传动独立董事 剑宗到底学什么副职业好