一个简单的C#多播委托的小例子
多播委托是指一个由委托串成的链表,当链表上的一个委托被回调时,所有链表上该委托的后续委托将会被顺序执行。需要注意,多播委托必须是同类型的,返回类型必须为void,并且不能带输入参数(但可以带引用参数)
System.MuliticastDelegate定义了对多播委托的支持。
class Program { public delegate void DemoMultiDelegate(); static void Main(string[] args) { DemoMultiDelegate dmd = new DemoMultiDelegate(PrintMethod1); dmd += new DemoMultiDelegate(PrintMethod2); dmd += new DemoMultiDelegate(PrintMethod3); dmd(); Console.ReadLine(); } static void PrintMethod1() { Console.WriteLine("first method"); } static void PrintMethod2() { Console.WriteLine("second method"); } static void PrintMethod3() { Console.WriteLine("third method"); } }