委托是 “方法的类型”,可存储方法引用,实现回调机制(如异步通知、事件触发)。
// 定义委托(无返回值,一个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#委托学习执行完成!