private static void EnglishGreeting(string name) { Console.WriteLine("Morning, " + name); } private static void ChineseGreeting(string name) { Console.WriteLine("早上好, " + name); } static void Main(string[] args) { GreetingDelegate gd = EnglishGreeting; gd += ChineseGreeting; gd("多播调用"); Console.ReadKey(); }
由于委托类型派生自 System.Delegate,因此可以在委托上调用该类定义的方法和属性。 例如,若要查询委托调用列表中方法的数量,你可以编写:
int invCount= gd.GetInvocationList().Count();
移除指定绑定方法-=
GreetingDelegate gd = EnglishGreeting; gd -= EnglishGreeting; gd += ChineseGreeting; gd("多播调用"); int invCount= gd.GetInvocationList().Count(); Console.WriteLine(invCount); Console.ReadKey();
如果移除已经移除的绑定方法 那么也不会报错