c#委托把方法当成参数
//定义委托,它定义了可以代表的方法的类型 public delegate void GreetingDelegate(string name); /// <summary> /// 用英文打招呼 /// </summary> /// <param name="name"></param> private void EnglishGreeting(string name) { Console.WriteLine("Morning, " + name); } /// <summary> /// 用中文打招呼 /// </summary> /// <param name="name"></param> private void ChineseGreeting(string name) { Console.WriteLine("早上好, " + name); } //注意此方法,它接受一个GreetingDelegate类型的方法作为参数 /// <summary> /// 委托(代理的方法) /// </summary> /// <param name="name"></param> /// <param name="markGreeting"></param> private void GreetPeople(string name, GreetingDelegate MakeGreeting) { MakeGreeting(name); } private void Form1_Load(object sender, EventArgs e) { //Delegate方式一: //GreetPeople("Jimmy Zhang", EnglishGreeting); //GreetPeople("张子阳", ChineseGreeting); //Console.ReadKey(); //Action方式二: GreetPeopleAction("Jimmy Zhang", (s) => { Console.WriteLine("Morning, " + s); }); GreetPeopleAction("张子阳", (s) => { Console.WriteLine("早少好, " + s); }); Console.ReadKey(); } /// <summary> /// Action委托作为参数 /// </summary> /// <param name="name"></param> /// <param name="action"></param> public void GreetPeopleAction(string name, Action<string> action) { action(name); }
作者:阿笨
【官方QQ一群:跟着阿笨一起玩NET(已满)】:422315558
【官方QQ二群:跟着阿笨一起玩C#(已满)】:574187616
【官方QQ三群:跟着阿笨一起玩ASP.NET(已满)】:967920586
【官方QQ四群:Asp.Net Core跨平台技术开发(可加入)】:829227829
【官方QQ五群:.NET Core跨平台开发技术(可加入)】:647639415
【网易云课堂】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628
【腾讯课堂】:https://abennet.ke.qq.com
【51CTO学院】:https://edu.51cto.com/sd/66c64
【微信公众号】:微信搜索:跟着阿笨一起玩NET