zoukankan      html  css  js  c++  java
  • 多播委托

    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();
    }
  • 相关阅读:
    sql相关操作
    web前端技术归类
    在EasyUI中统一判断是否有选中行,如果有则将选中行数据传入回调函数
    几种不同的分页处理办法
    将json格式日期(毫秒数)转成日常日期格式和日常格式时间对比
    在asp.net中导出表格Excel数据
    生成html文件
    EasyUI时间格式化
    checkbox,radio,selected相关操作
    javascript生成n至m的随机整数
  • 原文地址:https://www.cnblogs.com/genesis/p/4889201.html
Copyright © 2011-2022 走看看