【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("这是实例方法");
        }
【c# 学习笔记】委托链的使用的更多相关文章
- Java-马士兵设计模式学习笔记-责任链模式-FilterChain功能
		一.目标 增加filterchain功能 二.代码 1.Filter.java public interface Filter { public String doFilter(String str) ... 
- Java-马士兵设计模式学习笔记-责任链模式-模拟处理Reques Response
		一.目标 1.用Filter模拟处理Request.Response 2.思路细节技巧: (1)Filter的doFilter方法改为doFilter(Request,Resopnse,FilterC ... 
- c#基础学习笔记-----------委托事件
		这里有一个比较简单的委托实例应用(跨窗体操作控件) http://blog.csdn.net/bdstjk/article/details/7004035 还有一个比较详细的介绍并深入理解委托事件的讲 ... 
- 学习笔记——责任链模式ChainOfResponsibility
		责任链模式,主要是通过自己记录一个后继者来判断当前的处理情况.Handler中,再增加一个方法用于设置后继对象,如SetHandler(Handler obj). 然后Handler类以其子类的处理方 ... 
- 【C++学习笔记】 链式前向星
		链式前向星是一种常见的储存图的方式(是前向星存图法的优化版本),支持增边和查询,但不支持删边(如果想要删除指定的边建议用邻接矩阵). 储存方式 首先定义数组 head[ i ] 来储存从节点 i 出发 ... 
- C#图解教程学习笔记——委托
		一.委托概述委托和类一样,是用户自定义类型,也是引用类型.但类表示的是数据和方法的集合,而委托持有一个或多个方法,以及一系列预定义操作. 可以通过以下操作步骤来使用委托:(1)声明一个委托类型.委托声 ... 
- [学习笔记] 舞蹈链(DLX)入门
		"在一个全集\(X\)中若干子集的集合为\(S\),精确覆盖(\(\boldsymbol{Exact~Cover}\))是指,\(S\)的子集\(S*\),满足\(X\)中的每一个元素在\( ... 
- Java-马士兵设计模式学习笔记-责任链模式-处理数据
		一.目标 数据提交前做各种处理 二.代码 1.MsgProcessor.java public class MsgProcessor { private List<Filter> filt ... 
- [js学习笔记] 原型链理解
		js中只有对象,包括对象,函数,常量等. prototype 只有函数里有这个属性. 对象里可以设置这个属性,但是没这个属性的意义 prototype指向一个对象,可以添加想要的方法. 该对象里有一个 ... 
随机推荐
- 获取历史K线数据的几个方法
			1.通过已有的股票交易软件下载数据,如果他们是开源结构的,就可以解析他们的K线数据. 2.在互联网上抓取数据 int iStockCode;CString strUrl; 通过OpenUrl.Read ... 
- 解决appium自带的Chromedriver版本和设备Android System Webview版本不一致的问题
			报错信息 selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred w ... 
- Python3循环
			Python中while语句的一般形式: while 判断条件: 语句 同样需要注意冒号和缩进,另外在Python中没有do…while循环 下面的实例计算1到100总和 ##calc.py n = ... 
- ROS手动编写消息发布器和订阅器topic demo(C++)
			1.首先创建 package cd ~/catkin_ws/src catkin_create_pkg topic_demo roscpp rospy std_msgs 2. 编写 msg 文件 cd ... 
- ID生成算法(一)——雪花算法
			JavaScript生成有序GUID或者UUID,这时就想到了雪花算法. 原理介绍: snowFlake算法最终生成ID的结果为一个64bit大小的整数,结构如下图: 解释: 1bit.二进制中最高位 ... 
- sftp远程传输脚本
			该脚本主要是是批量修改文件名,然后传输文件到服务器#!/bin/bash #脚本名:sftp.sh while true do num=`cat test.txt|wc -l` ;a<=$num ... 
- vue 路由传参的三种方法
			API在这里 https://router.vuejs.org/guide/essentials/navigation.html 第一种传参 通过路由属性中的name来确定匹配的路由,通过param ... 
- 咏南中间件和开发框架全面支持DELPHI10.3.2
			咏南中间件和开发框架全面支持DELPHI10.3.2 易博龙公司2019年7月12日发布了RAD STUDIO10.3.2正式版本. 咏南中间件自2019年7月14日始,中间件.CS框架.WEB框架. ... 
- 临界区代码  critical  section  Locks and critical sections in multiple threads
			临界区 在同步的程序设计中,临界区段(Critical section)指的是一个访问共享资源(例如:共享设备或是共享存储器)的程序片段,而这些共享资源有无法同时被多个线程访问的特性. 当有线程进入临 ... 
- gitment初始化评论跳回博客首页
			表现 众所周知,gitment评论系统需要初始化以创建对应的issue,可是我在点击login with github的时候,总是跳向博客首页!WTF!什么鬼?这样不程序啊? 排查 1.F12查看lo ... 
