委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以将其实例与任何具有兼容签名和返回类型的方法相关联。 你可以通过委托实例调用方法。
委托的使用:
* 方法的签名必须和委托一致,方法签名包括参数的个数,类型和顺序
* 方法的返回值类型要和委托一致
* 定义委托
* 声明委托变量
* 实例化委托类型
* 将委托作为参数传递
public delegate int Mydel(int x, int y);//定义委托 class Program { static void Main(string[] args) { student stu = new student(); Mydel Mydelegate = new Mydel(stu.add);//传入stu.add 方法 Mydel Mydelegate2 = new Mydel(stu.mul); //Mydel Mydelegate1 = delegate (int x, int u) { return stu.add(x, u); }; var add = Mydelegate(2, 6);//调用委托 或Mydelegate.Invoke(2, 6); Console.WriteLine(add); //委托可以调用多个方法。 这被称为多播。 若要向委托的方法列表(调用列表)添加其他方法, //只需使用加法运算符或加法赋值运算符(“+”或“+=”)添加两个委托。 Mydelegate += Mydelegate2; Console.WriteLine(Mydelegate(5, 5));//先调用mydelegete 再调用mydelegete2 Console.ReadKey(); } } class student { public int add(int x, int y) { return x + y; } public int sub(int x, int y) { return x - y; } public int mul(int x, int y) { return x * y; } }
可参考:https://www.cnblogs.com/sunliyuan/p/6036539.html
官方版本:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/delegates