在 C# 开发中,委托(Delegate) 和 事件(Event) 是实现 回调机制、解耦设计和异步通知的核心手段。掌握委托和事件的实际应用,可以大幅提升代码灵活性和可维护性。本文将结合真实开发场景,系统讲解其使用方法与工程实践。
一、委托(Delegate)概述
1.1 定义
委托是一种 类型安全的函数指针,可以引用具有相同签名的方法。
public delegate void Notify(string message);
Notify
是委托类型- 参数类型与返回类型必须与方法匹配
1.2 委托实例化与调用
public class Notifier
{
public void SendMessage(string msg)
{
Console.WriteLine($"消息: {
msg}");
}
}
Notifier notifier = new Notifier();
Notify notifyDelegate = new Notify(notifier.SendMessage);
notifyDelegate("委托调用测试");
1.3 多播委托
Notify notify1 = notifier.SendMessage;
Notify notify2 = msg => Console.WriteLine($"日志: {
msg}");
Notify multi = notify1 + notify2;
multi("多播委托测试");
多播委托可以将多个方法绑定到同一委托实例上,依次调用。
二、事件(Event)概述
2.1 定义
事件是基于 委托 的一种机制,用于 对象间解耦通知。
public class Publisher
{
public event Notify OnNotify; // 定义事件
public void RaiseEvent(