public delegate int MyDelegate(string str);//该委托可被任何一个与其且有相同标签(类型参数和返回相同类型)的方法 static void Main(string[] args) { //2、实例化委托 MyDelegate del = new MyDelegate(getStrLenth); MyDelegate del2 = getStrLenth;//实例化简写 //3、调用 Console.WriteLine(del.Invoke("hello delegate!")); Console.WriteLine(del("hello delegate!")); //GreetingClass.GreetingChinese("中国人"); //GreetingClass.GreetingChinese("hello"); DelGreeting delGreeting = new DelGreeting(GreetingClass.GreetingEnglish); GreetingClass.Greeting("hello", delGreeting); Console.ReadKey(); }
public static void Greeting(string name, DelGreeting greeting)//对扩展开放,对修改封闭 { greeting.Invoke(name); }