zoukankan      html  css  js  c++  java
  • 【c# 学习笔记】委托链的使用

      委托链其实就是委托类型,只是委托链把多个委托链接在一起而已,也就是说,我们把链接了多个方法的委托称为委托链或多路广播委托。如下:

         public delegate void DelegateTest();
    
    
    
            static void Main(string[] args)
            {
                //用静态方法来实例化委托
                DelegateTest dtstatic = new DelegateTest(Program.method1);
    
                DelegateTest dtinstance = new DelegateTest(new Program().method2);
    
                //定义一个委托对象,一开始初始化为null,即不代表任何方法。
                DelegateTest delegatechain = null;
    
                //使用 “+”符号链接委托,链接多个委托后就成为了委托链
    
                delegatechain += dtstatic;
                delegatechain += dtinstance;
    
                //调用委托链
                delegatechain();
                Console.Read();
     
            }
            private static void method1()
            {
                Console.WriteLine("这是静态方法");
            }
    
            //实例方法
    
            private void method2()
            {
                Console.WriteLine("这是实例方法");
            }

    从委托链中移除委托

            public delegate void DelegateTest();
    
    
    
            static void Main(string[] args)
            {
                //用静态方法来实例化委托
                DelegateTest dtstatic = new DelegateTest(Program.method1);
    
                DelegateTest dtinstance = new DelegateTest(new Program().method2);
    
                //定义一个委托对象,一开始初始化为null,即不代表任何方法。
                DelegateTest delegatechain = null;
    
                //使用 “+”符号链接委托,链接多个委托后就成为了委托链
    
                delegatechain += dtstatic;
                delegatechain += dtinstance;
    
                //使用 “-”运算符 移除委托 
                delegatechain -= dtstatic;
                //调用委托链
                delegatechain();
                Console.Read();
     
            }
            private static void method1()
            {
                Console.WriteLine("这是静态方法");
            }
    
            //实例方法
    
            private void method2()
            {
                Console.WriteLine("这是实例方法");
            }
  • 相关阅读:
    一:Storm集群环境搭建
    八:Zookeeper开源客户端Curator的api测试
    七:zooKeeper开源客户端ZkClient的api测试
    六:ZooKeeper的java客户端api的使用
    Redis(四):常用数据类型和命令
    Spring Cloud分布式微服务系统中利用redssion实现分布式锁
    @Controller和@RestController的区别?
    可伸缩系统架构探讨
    可扩展架构系统的探讨
    @ExceptionHandler异常统一处理
  • 原文地址:https://www.cnblogs.com/xiaoyehack/p/9647727.html
Copyright © 2011-2022 走看看