委托是什么?
字面理解:例如A要建一栋别墅,找到B建筑施工队,请B来建筑别墅。
委托类型规定方法的签名(方法类型):返回值类型、参数类型、个数、顺序。
委托变量可以用来存储方法的引用,相当于把函数当做参数传给另一个函数。
委托作用?
①通过委托调用更灵活。
②可以将不变代码进行封装隔离变化,更易于维护。
委托应用
①定义委托
[访问修辞] delegale 返回类型 委托名(参数列表)
注:委托参数中目前语法不能省略参数名;委托是类型,与class同级,所以可以定义在类外。
②实例化委托
委托类型 委托变量 = new 委托名(方法名)
委托类型 委托变量 = 方法名
③使用委托
委托引用名(实参列表)
委托引用?.Invoke(参数)
示例一
示例二
static void Main(string[] args)
{
Cal cal1 = Add;
Test(cal1);
//Test(new cal(Dec));
Test(Dec)
}
泛型委托
顾名思义就是使用泛型来定义委托。
好处:简化委托的使用,可以自动生成委托。
系统预定义的泛型委托
示例
示例一 无参无返
示例二 有参无返
示例三 有参有返1
示例四 有参有返2