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、

相关推荐
nujnewnehc2 小时前
ps, ai, ae插件都可以用html和js开发了
前端·javascript
Jagger_5 小时前
整洁架构三连问:是什么,怎么做,为什么要用
前端
一个处女座的程序猿O(∩_∩)O6 小时前
React 完全入门指南:从基础概念到组件协作
前端·react.js·前端框架
前端摸鱼匠6 小时前
Vue 3 的defineEmits编译器宏:详解<script setup>中defineEmits的使用
前端·javascript·vue.js·前端框架·ecmascript
dllxhcjla6 小时前
微服务全套
java
csdn_aspnet6 小时前
C# (QuickSort using Random Pivoting)使用随机枢轴的快速排序
数据结构·算法·c#·排序算法
里欧跑得慢6 小时前
Flutter 测试全攻略:从单元测试到集成测试的完整实践
前端·css·flutter·web
Jagger_6 小时前
前端整洁架构详解
前端
亚历克斯神6 小时前
JVM 内存管理 2026:深度解析与调优实战
java·spring·微服务
徐小夕6 小时前
我花一天时间Vibe Coding的开源AI工具,一键检测你的电脑能跑哪些AI大模型
前端·javascript·github