C#中的委托之操作符(基础二)
2016-06-27 11:54
603 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Delegate_OTT_02 { /* * 讲解: * 委托运算符操作 + 、+= 、- 、-= * */ //声明一个委托 delegate void ImOTT(int x); class Program { static void Main(string[] args) { ImOTT dele1 = new ImOTT(OTT.A); dele1(1); ImOTT dele2 = new ImOTT(OTT.B); dele2(2); //-----操作符+ //Call A ; Then B ImOTT dele3 = dele1 + dele2; dele3(3); //-----操作符- //Call A Remove B //dele4中不存在dele2 ,使用操作符“-”指向的是一个空的调用列表,这里并不算是错误 //从非空的列表里移除一个不存在的委托并不算错 ImOTT dele4 = dele1 - dele2; dele4(4); //-----操作符+= //Call A B; Then A dele3 += dele1; dele3(5); //-----操作符-= //Call A B ,A; Remove A; dele3 -= dele1; dele3(6); //new 一个OTT OTT ott = new OTT(); ImOTT dele5 = new ImOTT(ott.C); //Call A B ; Then C dele3 += dele5; dele3(10); dele3 += dele1; dele3(20); //注意这样:此时dele3 中 Call A B C A Then Remove A;操作符-=dele1移除的是最后一个A //在这样的调用列表中,当移除那个委托时,实际被移除的是调用列表里最后出现的那个委托 dele3 -= dele1; dele3(30); Console.Read(); } } class OTT { // 静态方法A public static void A(int a) { Console.WriteLine("OTT.A: "+ a); } // 静态方法B public static void B(int b) { Console.WriteLine("OTT.B: "+ b); } // 方法C public void C(int c) { Console.WriteLine("OTT.C: "+ c); } } }
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- 委托事件模型