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("这是实例方法");
            }
  • 相关阅读:
    Vuex2.0+Vue2.0构建备忘录应用实践
    一步步构造自己的vue2.0+webpack环境
    .NET入行之工作前
    webpack入门之简单例子跑起来
    vue中,class、内联style绑定、computed属性
    wap问答系统工作总结
    ASP.NET Core Api网关Ocelot的中文文档
    在pom.xml中添加Spring依赖
    【java基础】从反射开始(Reflection)
    【java基础】 == 和 equals() 的区别
  • 原文地址:https://www.cnblogs.com/xiaoyehack/p/9647727.html
Copyright © 2011-2022 走看看