C#委托与事件完全指南(八):从基础到高级应用实践

一、委托(Delegate):方法的类型化引用

1.1 委托的本质解析

// 1. 定义委托类型(方法签名模板)
public delegate void LogHandler(string message);

// 2. 声明委托实例
LogHandler logger;

// 3. 绑定具体方法
logger = Console.WriteLine;

// 4. 调用委托
logger("Hello Delegate!");
委托核心特性:
  • 类型安全:严格匹配方法签名

  • 多播能力:支持链式调用多个方法

  • 异步支持:BeginInvoke/EndInvoke模式

1.2 委托演进史

// C# 1.0:基础委托
delegate int Calculator(int x, int y);

// C# 2.0:匿名方法
Calculator add = delegate(int a, int b) { return a + b; };

// C# 3.0:Lambda表达式
Calculator multiply = (a, b) => a * b;

// C# 9.0:静态匿名函数
var power = static (int x, int y) => Math.Pow(x, y);

二、泛型委托:Action与Func

2.1 Action委托家族

定义 等效委托 典型应用场景
Action delegate void D() 无参数无返回值操作
Action<T1> delegate void D(T1) 单参数操作
Action<T1,T2> delegate void D(T1,T2) 多参数操作
// 文件操作日志记录
Action<string> logAction = message => 
    File.AppendAllText("app.log", $"{DateTime.Now}: {message}");

logAction("系统启动");

2.2 Func委托家族

定义 等效委托 典型应用场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xienda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值