Skip to content

链式委托

🏷️ C# 学习 C#

链式委托是指一个由委托串成的链表,当链表上的一个委托被回调时,所有链表上该委托的后续委托将会被顺序执行。

csharp
using System;

namespace MulticastDelegate
{
    class Program
    {
        /// <summary>
        /// 定义委托
        /// </summary>
        public delegate void TestMultiDelegate();

        static void Main(string args)
        {
            // 申明一个委托变量,并绑定第一个方法
            TestMultiDelegate handler = new TestMultiDelegate(PrintMessage1);
            // 绑定第二个方法
            handler += new TestMultiDelegate(PrintMessage2);
            // 绑定第三个方法
            handler += new TestMultiDelegate(PrintMessage3);
            // 检查结果
            // Output :
            //      第一个方法
            //      第二个方法
            //      第三个方法
            handler();
            Console.Read();
        }

        static void PrintMessage1()
        {
            Console.WriteLine("第一个方法");
        }

        static void PrintMessage2()
        {
            Console.WriteLine("第二个方法");
        }

        static void PrintMessage3()
        {
            Console.WriteLine("第三个方法");
        }
    }
}