两大作用:
(1)将方法当作参数传递
(2)方法的一种多态(类似于一个方法模板,可以匹配很多个方法)
~~~text
//定义一个委托
public delegate int MyDelegate(int x, int y);
//与委托匹配的一个方法
public static int Add(int a, int b)
{
return a + b;
}
//与委托匹配的另一个方法
public static int Reduce(int a, int b)
{
return a - b;
}
//示例:将委托/方法当参数传递
public static int Test(MyDelegate MD)
{
return MD(10, 20);
}
static void Main(string[] args)
{
int a, b, x, y;
MyDelegate md;
//将委托指向Add这个方法,并进行相关操作
md = Add;
a = md(1, 2);
b = Test(md);
//再将委托指向Reduce这个方法,并进行相关操作
md = Reduce;
x = md(7, 2);
y = Test(md);
Console.WriteLine($"1+2={a},10+20={b},7-2={x},10-20={y}");
Console.ReadLine();
}
~~~
输出:1+2=3,10+20=30,7-2=5,10-20=-10
- Visual Studio 2022安装到非C盘
- .net平台区别
- 常用单词
- 关键字
- 操作符(运算符)
- 标识符(命名规范)
- 开始
- 变量
- 常量
- 数据类型
- 值类型
- 变量数据类型
- 枚举类型enum(常量集合)
- 结构类型struct(结构体)
- 元组类型
- 可null类型(T?)
- 引用类型
- 数组(array)
- 集合(List)
- 内置引用类型
- object
- string
- Dynamic(动态类型)
- delegate委托(代理)类型
- 自定义引用类型
- 接口(interface)
- 类class
- record(定义一个引用类型)
- 指针类型(仅用于非安全代码)
- get和set访问器
- delegate委托
- delegate实现发布订阅与事件
- 类型转换
- 合并操作符??
- 类相关
- Partial 部分类
- 类定义以及访问修饰符(封装)
- abstract抽象类与sealed密封类
- virtual虚方法
- 接口interface
- C# 预处理器指令
- C#技术栈
- 判断(流程控制)与三元运算
- if
- switch
- 三元运算
- 循环
- while 循环
- for循环
- foreach循环
- do...while 循环
- 文件操作
- 其他
- 多开