C# 委托

委托类似于 js 回调函数

// 定义 delegate 的格式,是 (int, int) => int 类型的
public delegate int MyDelegate(int x, int y);


// 实例化委托
public static int DMethod(int a, int b){ return a + b;}
MyDelegate cal = DMethod;
cal(1, 2);

// 把委托作为参数传入
public static int Calculator(int param1, int param2, MyDelegate del){
    return del(param1, param2);
}

这给我的感觉就很像

const Calculator = (param1: number, param2: number, del: (number, number) => number) {
	return del(param1, param2);
}

的扩写

C# 不能直接标明类型是 (number, number) => number,只好定义一个委托来代表这种类型

当然我这种理解并不准确,因为委托并不只有类型上的规范,更多的是逻辑上的规范,一组委托实例化出来的函数应有相关联的功能用法

事件是一种特殊的委托


版权声明:本文为weixin_43544179原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。