• 多播委托


    public delegate void Mydel();
    class Program
    {
        static void Main(string[] args)
        {
            Mydel del = T1;
            del += T2;
            del += T3;
            del += T4;
            del -= T2;
            del();        
        //等价于,反编译器查看:

        Mydel del = new Mydel(Program.T1);
        del = (Mydel)Delegate.Combine(del, new Mydel(Program.T2));//Combine返回的是父类类型,需要强转子类
        del = (Mydel)Delegate.Combine(del, new Mydel(Program.T3));
        del = (Mydel)Delegate.Combine(del, new Mydel(Program.T4));
        del = (Mydel)Delegate.Remove(del, new Mydel(Program.T2));
        del();

            Console.ReadKey();
        }
        public static void T1()
        {
            Console.WriteLine("我是T1");
        }
        public static void T2()
        {
            Console.WriteLine("我是T2");
        }
        public static void T3()
        {
            Console.WriteLine("我是T3");
        }
        public static void T4()
        {
            Console.WriteLine("我是T4");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Action<string> action = T1;
            action += T2;
            action += T3;
            action += T4;
            action("你好");
            Console.ReadKey();
        }
        public static void T1(string s)
        {
            Console.WriteLine("我是T1"+s);
        }
        public static void T2(string s)
        {
            Console.WriteLine("我是T2" + s);
        }
        public static void T3(string s)
        {
            Console.WriteLine("我是T3" + s);
        }
        public static void T4(string s)
        {
            Console.WriteLine("我是T4" + s);
        }
    }
    
    反编译器:
    private static void Main(string[] args)
    {
        Action<string> action = new Action<string>(Program.T1);
        action = (Action<string>)Delegate.Combine(action, new Action<string>(Program.T2));//Combine返回的是父类类型,需要强转子类
        action = (Action<string>)Delegate.Combine(action, new Action<string>(Program.T3));
        action = (Action<string>)Delegate.Combine(action, new Action<string>(Program.T4));
        action("你好");
        Console.ReadKey();
    }
  • 相关阅读:
    mysql 创建++删除 数据表
    mac 配置apache
    mac 安装mysql
    mysql 创建++删除 数据库
    配置默认编码为utf8
    mysql 添加用户
    mysql 查看库结构---查看表结构
    centos7
    centOS 7 安装mysql
    修改字符集
  • 原文地址:https://www.cnblogs.com/genesis/p/4889201.html
Copyright © 2020-2023  润新知