2026-01-13
C#
00

回调函数翻译得并不信达雅,回调听起来像递归或者循环,然而并不是这么回事

本意是“完事了叫你”函数

回调函数的机制和订阅-广播模式很像,只不过回调函数是一对一,而后者则是一对多

回调函数是函数逻辑结束后给另外一个函数传参,这个传参的函数可以指定(一般是使用的时候写的lambda匿名函数)

表面看回调函数只涉及两个对象,加工者(发送回调的函数),接受者(主函数调用);

实际上回调函数涉及三个对象:

加工者:执行逻辑,将结果参数发送给要回调的函数

接受者:接收发送过来的参数作为函数入参,执行函数逻辑

主函数:调用加工者并指明接受者,相当于牵线搭桥

EX:

C#
private async Task 菜单点餐(String 晚饭 ,Action<string> 回调函数) { MessageBox.Show($"点了{晚饭}"); await Task.Delay(2000);//模拟等待时间 回调函数($"{晚饭}做好了"); } private void 取餐给顾客(string str) { MessageBox.Show($"这位顾客,{str},请享用"); } private async void OrderBTN_Click(object sender, RoutedEventArgs e) { //三个对象,顾客点餐,厨师做饭,服务员取餐给顾客 await 菜单点餐("宫保鸡丁", 取餐给顾客); //使用匿名函数代替服务员取餐给顾客,这样就不需要单独定义一个函数了(顾客自己去端饭,不需要服务员) await 菜单点餐("宫保鸡丁", (str) => { MessageBox.Show($"这位顾客,{str},请享用"); }); }
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:猫猫

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!