🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
两大作用: (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