【系列文章目录】
前言
本篇介绍委托
一、什么是委托
1.文档中的描述
来自官方的描述
委托提供后期绑定机制。 后期绑定意味着调用方在你所创建的算法中至少提供一个方法来实现算法的一部分。
也就是说委托存在的目的,是为了在程序中执行一部分不确定的方法来实现算法
所以委托的特点就是可以在运行时绑定
2.我理解的委托
我是这样理解委托的,在我们设计中,有一部分方法不是一开始定义好的
而是在运行时拼凑出来的,所以需要预留一部分的空间来实现
而这个预留的一部分空间就是委托
如果让我自己实现一个委托
我会使用一个List来存储方法指针,在需要执行这些方法的时候遍历这个List,逐一执行
二、委托的使用
在实际使用中,其实我很少用到自定义委托
更多的时候使用的是Action、**Func**等C#已经为我们做好的委托定义
而实际上,使用这些定义好的委托已经能满足大部分的需求了
最后,总结一下使用委托的注意事项吧
- 注册委托与注销委托尽量成对出现
- 委托有可能为 null
- 在声明委托的时候给一个初始值
public Action<int> OnAction = new Action<int>();
- 在调用委托的时候先判空再调用
//判空调用 if (OnAction != null){ OnAction.Invoke(); } //语法糖,直接用一句来实现上面的判空调用 OnAction?.Invoke();
- 在声明委托的时候给一个初始值