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("这是实例方法");
            }
  • 相关阅读:
    ResNet & DenseNet
    82. 删除排序链表中的重复元素 II
    C++ Primer 笔记——多重继承与虚继承
    C++ Primer 笔记——命名空间
    C++ Primer 笔记——异常处理
    C++ Primer 笔记——模板与泛型编程
    C++ Primer 笔记——转发
    C++ Primer 笔记——理解std::move
    C++ Primer 笔记——OOP
    C++ Primer 笔记——重载运算
  • 原文地址:https://www.cnblogs.com/xiaoyehack/p/9647727.html
Copyright © 2011-2022 走看看