合并委托(多路广播委托)
2015-11-23 14:06
295 查看
合并委托(多路广播委托)
本示例演示如何创建多播委托。
委托对象的一个有用属性是:可以使用 + 运算符将多个对象分配给一个委托实例。
多播委托包含已分配委托的列表。
在调用多播委托时,它会按顺序调用列表中的委托。
只能合并相同类型的委托。
- 运算符可用于从多播委托中移除组件委托。
本示例演示如何创建多播委托。
委托对象的一个有用属性是:可以使用 + 运算符将多个对象分配给一个委托实例。
多播委托包含已分配委托的列表。
在调用多播委托时,它会按顺序调用列表中的委托。
只能合并相同类型的委托。
- 运算符可用于从多播委托中移除组件委托。
C# using System; // Define a custom delegate that has a string parameter and returns void. delegate void CustomDel(string s); class TestClass { // Define two methods that have the same signature as CustomDel. static void Hello(string s) { System.Console.WriteLine(" Hello, {0}!", s); } static void Goodbye(string s) { System.Console.WriteLine(" Goodbye, {0}!", s); } static void Main() { // Declare instances of the custom delegate. CustomDel hiDel, byeDel, multiDel, multiMinusHiDel; // In this example, you can omit the custom delegate if you // want to and use Action<string> instead. //Action<string> hiDel, byeDel, multiDel, multiMinusHiDel; // Create the delegate object hiDel that references the // method Hello. hiDel = Hello; // Create the delegate object byeDel that references the // method Goodbye. byeDel = Goodbye; // The two delegates, hiDel and byeDel, are combined to // form multiDel. multiDel = hiDel + byeDel; // Remove hiDel from the multicast delegate, leaving byeDel, // which calls only the method Goodbye. multiMinusHiDel = multiDel - hiDel; Console.WriteLine("Invoking delegate hiDel:"); hiDel("A"); Console.WriteLine("Invoking delegate byeDel:"); byeDel("B"); Console.WriteLine("Invoking delegate multiDel:"); multiDel("C"); Console.WriteLine("Invoking delegate multiMinusHiDel:"); multiMinusHiDel("D"); } } /* Output: Invoking delegate hiDel: Hello, A! Invoking delegate byeDel: Goodbye, B! Invoking delegate multiDel: Hello, C! Goodbye, C! Invoking delegate multiMinusHiDel: Goodbye, D! */
相关文章推荐
- 打包apk
- 121 Best Time to Buy and Sell Stock
- oracle 连接 web service (利用soap_api)
- spring框架学习(一)
- python codeforces 322 div2 C
- oracle 分区表的建立方法
- 移动端背景图片铺满屏幕
- 联通编码问题
- JAVA 3DES加密解密
- 浏览器架构
- linux block层的class diagram
- angularJS学习之路(十二)---{{}}发生屏幕闪烁问题
- Java - 文件(IO流)
- RESTful API 设计指南
- ios9适配系列教程
- 对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
- 红黑树
- MySQL的mysqldump工具的基本用法
- centos7的系统变化
- Mac 环境下配置opencv(Eclipse)