//定义委托,它定义了可以代表的方法的类型 public delegate void GreetingDelegate(string name); ////// 用英文打招呼 /// /// private void EnglishGreeting(string name) { Console.WriteLine("Morning, " + name); } ////// 用中文打招呼 /// /// private void ChineseGreeting(string name) { Console.WriteLine("早上好, " + name); } //注意此方法,它接受一个GreetingDelegate类型的方法作为参数 ////// 委托(代理的方法) /// /// /// 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(); } ////// Action委托作为参数 /// /// /// public void GreetPeopleAction(string name, Actionaction) { action(name); }