委托
委托是一种特殊的对象类型,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。
public delegate void SayDelegate(string name); //定义委托 public class ClassPeople { public void SayChinese(string name) { Console.WriteLine("你好,"+name); } public void SayEnglish(string name) { Console.WriteLine("Hello," + name); } //接受SayDelegate类型的方法作为参数 public void DoWork(string name, SayDelegate MakeSay) { MakeSay(name); } } class Program { static void Main(string[] args) { ClassPeople cp = new ClassPeople(); cp.DoWork("linyongqin", cp.SayChinese); cp.DoWork("yokin",cp.SayEnglish); Console.WriteLine("---------------华丽的分隔线-----------------"); //将多个方法绑定到同一个委托,这就是多播委托 string name1 = "阿墉"; //SayDelegate sayDelegate1 = cp.SayChinese; // = : 赋值 SayDelegate sayDelegate1 = new SayDelegate(cp.SayChinese); sayDelegate1 += cp.SayEnglish; // += :绑定 给委托变量再绑定一个方法 sayDelegate1 -= cp.SayChinese; //取消对SayChinese方法的绑定 cp.DoWork(name1, sayDelegate1); Console.ReadKey(); } }

浙公网安备 33010602011771号