一个简单的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");
        }
    }
原文地址:https://www.cnblogs.com/fo0ol/p/3131351.html