using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DeleGateTest
{
public delegate void GreetingDelegate(string _name);
class Program
{
//public enum Language { English, Chinese }
private static void EnglishGreeting(string _name)
{
Console.WriteLine("Good Morning!" + _name);
Console.ReadLine();
}
private static void ChineseGreeting(string _name)
{
Console.WriteLine("早上好!" + _name);
Console.ReadLine();
}
//public void GreetingPeople(string _name, Language language)
//{
// switch (language)
// {
// case Language.English:
// EnglishGreeting(_name);
// break;
// case Language.Chinese:
// ChineseGreeting(_name);
// break;
// }
//}
public static void GreetingPeopleTwo(string _name, GreetingDelegate greetingdelegate)
{
greetingdelegate(_name);
}
static void Main(string[] args)
{
//Program p = new Program();
//p.GreetingPeople("jack",Language.English);
//p.GreetingPeople("sidihu",Language.Chinese);
//type one
//GreetingPeopleTwo("jack", EnglishGreeting);
//GreetingPeopleTwo("jack", ChineseGreeting);
//type two
//string Cname = "";
//string Ename = "jack";
//GreetingDelegate GDEngilsh, GDchinese;
//GDEngilsh = EnglishGreeting;
//GDchinese = ChineseGreeting;
//GreetingPeopleTwo(Cname,GDchinese);
//GreetingPeopleTwo(Ename,GDEngilsh);
//type three 可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托,当调用这个委托的时候,将依次调用其所绑定的方法
//GreetingDelegate GDall;
//GDall = EnglishGreeting;
//GDall += ChineseGreeting;
//GreetingPeopleTwo("",GDall);
//type four
//GreetingDelegate GDall;
//GDall = EnglishGreeting;
//GDall += ChineseGreeting;
//GDall("");
//type five
GreetingDelegate GDall = new GreetingDelegate(EnglishGreeting);
GDall += ChineseGreeting;
GDall("");
GDall -= EnglishGreeting;//解除一个绑定
GDall("sidihu");
}
}
//public delegate void GreetingDelegate(string name);
//class Program
//{
// private static void EnglishGreeting(string name)
// {
// Console.WriteLine("Morning, " + name);
// }
// private static void ChineseGreeting(string name)
// {
// Console.WriteLine("早上好, " + name);
// }
// private static void GreetPeople(string name, GreetingDelegate MakeGreeting)
// {
// MakeGreeting(name);
// }
// static void Main(string[] args)
// {
// GreetPeople("Jimmy Zhang", EnglishGreeting);
// GreetPeople("张子阳", ChineseGreeting);
// Console.ReadKey();
// }
//}
}