C# 委托(Delegate):实现方法回调

简介: 委托是方法的类型,可引用方法并实现回调机制,常用于异步通知与事件触发。通过定义委托,可将方法作为参数传递,并在任务完成后调用多个回调函数,支持灵活的程序解耦与扩展。

委托是 “方法的类型”,可存储方法引用,实现回调机制(如异步通知、事件触发)。

// 定义委托(无返回值,一个string参数)
public delegate void NotifyDelegate(string message);
public class NotificationService
{
    // 委托作为参数(回调方法)
    public static void ProcessTask(string taskName, NotifyDelegate onComplete)
    {
        Console.WriteLine($"正在执行任务:{taskName}");
        // 模拟任务执行
        Thread.Sleep(1000);
        // 任务完成后回调
        onComplete?.Invoke($"{taskName}执行完成!");
    }
}
public class DelegateDemo
{
    // 回调方法1
    public static void EmailNotify(string message)
    {
        Console.WriteLine($"【邮件通知】{message}");
    }
    // 回调方法2
    public static void SmsNotify(string message)
    {
        Console.WriteLine($"【短信通知】{message}");
    }
}
// 调用示例
// 委托绑定方法(可绑定多个,形成委托链)
NotifyDelegate notify = DelegateDemo.EmailNotify;
notify += DelegateDemo.SmsNotify;
// 执行任务并回调
NotificationService.ProcessTask("C#委托学习", notify);
// 输出:
// 正在执行任务:C#委托学习
// 【邮件通知】C#委托学习执行完成!
// 【短信通知】C#委托学习执行完成!
相关文章
|
存储 缓存 弹性计算
2024年阿里云最便宜云服务器出炉:61元、165元、99元、199元
2024年截止目前阿里云最便宜的云服务器已经出炉,轻量应用服务器2核2G3M带宽61元1年、2核4G4M带宽165元1年;云服务器经济型e实例2核2G3M带宽99元1年;云服务器通用算力型u1实例2核4G5M带宽199元1年。除此之外,还有幻兽帕鲁Palworld专用服务器4核16G10M带宽只要26.52元/1个月、79.56元/3个月、149.00元/6个月,8核32G10M带宽只要90.60元/1个月、271.80元/3个月。本文为大家分享2024年阿里云最便宜的各个云服务器。
11063 4
2024年阿里云最便宜云服务器出炉:61元、165元、99元、199元
|
C语言
MQTT交叉编译(海思v300 arm-hisiv300-linux-):openssl、paho.mqtt.c、paho.mqtt.cpp
MQTT交叉编译(海思v300 arm-hisiv300-linux-):openssl、paho.mqtt.c、paho.mqtt.cpp
1495 0
MQTT交叉编译(海思v300 arm-hisiv300-linux-):openssl、paho.mqtt.c、paho.mqtt.cpp
|
SQL 网络协议 数据库
SQL Server 2019下载安装教程
SQL Server 2019下载安装教程
5523 0
|
Linux
Linux经常使用命令汇总和总结
Linux经常使用命令汇总和总结
354 1
|
存储 JSON API
精选6个C++项目,推荐新人练手首选!(上)
精选6个C++项目,推荐新人练手首选!
精选6个C++项目,推荐新人练手首选!(上)
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
1066 1
|
监控 JavaScript 前端开发
JavaScript 正则表达式详解
【2月更文挑战第26天】
502 1
JavaScript 正则表达式详解
|
C# 图形学 C++
使用vscode开发C#+unity没有代码提示问题
使用vscode开发C#+unity没有代码提示问题
1432 0
使用vscode开发C#+unity没有代码提示问题
|
Linux
Avalonia应用在基于Linux的国产操作deepin上运行
Avalonia应用在基于Linux的国产操作deepin上运行
574 0