C#回调函数

1、使用委托实现回调

csharp 复制代码
 public delegate void CallbackDelegate(string message);//定义一个委托类型
 CallbackDelegate callbackDelegate;//声明一个委托对象
csharp 复制代码
  /// <summary>
        /// 定义委托对应的函数
        /// </summary>
        /// <param name="str"></param>
        public void CallBackFunc(string  str)
        {
            Console.WriteLine($"我是回调函数,我输出内容:{str}");
        }
csharp 复制代码
 callbackDelegate = CallBackFunc;//实例化委托
csharp 复制代码
 /// <summary>
        /// 定义主函数
        /// </summary>
        /// <param name="callback"></param>
        public void DoSomething(CallbackDelegate callback)
        {
            // 执行一些操作
            string result = "操作完成";

            // 调用回调函数
            callback(result);
        }

调用:

csharp 复制代码
   DoSomething(callbackDelegate);//调用主函数

输出:

csharp 复制代码
我是回调函数,我输出内容:操作完成

上面的代码中DoSomething是一个主函数,这个函数有一个委托类型的参数,所以调用时直接传入一个委托即可,并且DoSomething函数执行快结束的时候调用了传入的委托,这个委托绑定的函数就叫做"回调函数",所以这里的回调函数就是主函数快要结束的时候调用一个委托对象,又因为委托绑定的是函数,所以调用的本质上就是一个函数,这里称为回调函数。

2、

相关推荐
用户850869276151 分钟前
秒杀系统中 Shell 脚本并发控制 Bug:究竟哪里出了
前端
淡海水1 小时前
09-04-内存-Unity原生对象生命周期
unity·c#·游戏引擎·gc
金銀銅鐵1 小时前
一个 Java 文件实现《孫子兵法·始計篇》中英对照阅读器
java·后端·ai编程
DevOpenClub2 小时前
高考教育信息问答 API:会话参数、资料引用与流式响应
java·数据库·高考
bro_Java6662 小时前
《排序的底层逻辑:比较、交换与分治》
java·算法·排序算法
炫酷的大高个3 小时前
6 亿播放的闪身步,我用前端算出 15 倍重心差
前端·javascript
不可能片场3 小时前
内容运营自动化 配图折行别把词切两半
前端·electron
Lank_M3 小时前
HEIC转JPG统一转sRGB,P3高饱和色就回不来了
前端
补码缩写3 小时前
sharp默认转JPG颜色没错,ICC和EXIF却全没了
前端
用户7783366132113 小时前
SerpBase AI Overview 引用卡片:React 组件实战
前端