C# delegate委托的用法
一.前言
delegate的意思就是委托。简单来说,在C#中delegate就是一个用来引用方法的类型,创建了委托后,在委托里添加方法的指向,就可以用委托来调用添加到委托里的方法。
二.用法
1.一般委托
//定义委托类型 public delegate string Attack(int point); public class Demo { public string Fire(int point) { return "火属性伤害:" + point + "点\n"; } public string Ice(int point) { return "冰属性伤害:" + point + "点\n"; } } public class Program { //调用 public static void Main(string[] args) { //声明委托变量 Attack attack; Demo demo = new Demo(); //初始化委托变量,将方法和委托关联 attack = new Attack(demo.Fire); //向委托添加方法 attack += demo.Ice; //向委托减方法 //attack -= demo.Ice; //调用委托 string result = attack(100); Console.WriteLine(result); } }
2.匿名委托
//定义委托类型 public delegate string Attack(int point); public class Program { //调用 public static void Main(string[] args) { //声明委托变量 Attack attack = delegate (int point) { return "属性伤害:" + point + "点\n"; }; //调用委托 string result = attack(100); Console.WriteLine(result); } }
匿名委托只能关联一个方法,好处在于不用专门定义一个委托函数来传递方法。
三.总结
1.一个委托可以关联多个方法,调用一次委托便可以执行多个方法。
2.如果委托的方法带返回值,那么最终得到的返回值只有委托最后一个关联方法的返回值。