GetInvocationList 方法
来源:互联网 发布:广发淘宝卡 集分宝2017 编辑:程序博客网 时间:2024/06/01 10:25
Delegate.GetInvocationList 方法 ()
返回委托的调用列表。
下面的示例将三种方法分配给委托。 然后,它调用GetInvocationList方法以获取分配给委托,以按逆序执行委托并执行其名称不包括子字符串的方法的方法总数”文件”。
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace test{ class Program { public static void Main() { Action<String> outputMessage = null; outputMessage += Console.WriteLine; outputMessage += OutputToFile; outputMessage += Show; Console.WriteLine("调用列表有{0}个方法.", outputMessage.GetInvocationList().Length); // 通常调用委托 outputMessage("Hello there!"); //Console.WriteLine("按<Enter>继续..."); Console.ReadLine(); // 以相反顺序调用调用列表中的每个委托 for (int counter = outputMessage.GetInvocationList().Length - 1; counter >= 0; counter--) { var outputMsg = outputMessage.GetInvocationList()[counter]; outputMsg.DynamicInvoke("问候和敬意!"); } //Console.WriteLine("按<Enter>继续..."); Console.ReadLine(); // 调用不写入文件的每个委托 for (int ctr = 0; ctr < outputMessage.GetInvocationList().Length; ctr++) { var outputMsg = outputMessage.GetInvocationList()[ctr]; if (!outputMsg.GetMethodInfo().Name.Contains("File")) { outputMsg.DynamicInvoke(new String[] { "Hi!" }); } } Console.ReadKey(); } private static void OutputToFile(String s) { var sw = new StreamWriter(@".\output.txt"); sw.WriteLine(s); sw.Close(); } private static void Show(String s) { Console.WriteLine("Show---"+s); } }}
运行结果如图:
阅读全文
0 0
- GetInvocationList 方法
- GetInvocationList
- GetInvocationList
- 多播委托——GetInvocationList方法
- 委托链中的 GetInvocationList
- GetInvocationList of an event in VB.NET
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- Linux free命令详解(转)
- 并发编程系列之一:锁的意义
- Qt5中使用lambda表达式
- 人事管理
- GetInvocationList 方法
- 北京SEO祭司:网站页面的SEO优化
- 安徽省池州市谷歌卫星地图下载
- 优雅高效的MyBatis-Plus工具快速入门使用
- MySQL主从复制与读写分离的实现
- FloatActionButton
- 最新关于PADS9.5与altium designer 16.0.6交互问题
- 一对多关联关系映射和设置级联属性
- 使用MVP模式+OKHttp网络请求 带编辑删除的购物车