Delegate委托
一、委托的定义与作用
委托(Delegate)是一种引用方法的类型,本质上是函数指针。可以将函数赋值给变量,以参数形式传递函数,进而实现回调、事件等功能。
- 类似闭包函数的概念,但适用于 C# 这种静态类型语言。
- 委托本身是类型,可实例化。
- 委托不能重载,不能重名。
二、声明语法
delegate为关键词。- 访问修饰符可选,默认为
public。 - 可写在
namespace或class块中(更多用于 namespace)。 - 声明只是定义了委托类型,并未与任何函数关联。
三、用途
委托可作为: - 类成员 - 函数参数
常用于需要延迟执行的逻辑,例如事件处理、回调机制。
四、创建和赋值
创建委托变量并赋值有两种形式:
注意:
- Fun 是已有函数的名字,不加括号。
五、调用委托
调用委托有两种方式:
六、绑定多个方法
委托可以绑定多个方法,使用 += 操作符:
此时,执行 ff() 会连续执行两次 Fun 方法。
适用于批量回调、事件通知等场景,可简化处理逻辑。