多播委托与事件的案例
来源:互联网 发布:闲鱼申请淘宝介入15天 编辑:程序博客网 时间:2024/05/21 06:41
//用一个开机关机的例子 来解释事件的本质 , 一个委托变量可以存放多个方法,就像一条锁链一样namespace 开机关机{ class Program { static void Main(string[] args) { Console.WriteLine("开机。。。"); Console.ReadKey(); CloseComputer cmp = new CloseComputer(); Console.WriteLine("打开qq"); Console.ReadKey(); //创建一个 closeqq的实例 Closeqq CQ = new Closeqq(); //此处调用cmp中的CloseApp 事件 cmp.CloseApp += CQ.Close; Console.WriteLine("打开IE"); Console.ReadKey(); CloseIE CIE = new CloseIE(); cmp.CloseApp += CIE.Close; Console.WriteLine("打开Word"); Console.ReadKey(); CloseWord CWD = new CloseWord(); cmp.CloseApp += CWD.Close; cmp.ShutDown(); Console.ReadKey(); } }}//单独创建一个类来 声明一个委托namespace 开机关机{ public delegate void DelegateClose();}//创建一个电脑类 用来执行 关机操作namespace 开机关机{ class CloseComputer { //定义一个事件 //经反编译 可知 事件内部 其实就是一个 私有的委托变量和 一个Remove方法 和 一个 Add 方法 public event DelegateClose CloseApp; public void ShutDown() { if (CloseApp != null) { CloseApp(); } Console.WriteLine("正在关机中"); } }}//关闭IE浏览器的一个类namespace 开机关机{ class CloseIE { public void Close() { Console.WriteLine("关闭IE浏览器"); } }}//关闭Word文档的一个类namespace 开机关机{ class CloseWord { public void Close() { Console.WriteLine("关word"); } }}//关闭qq的一个类namespace 开机关机{ class Closeqq { public void Close() { Console.WriteLine("关QQ"); } }}
此示例 比较清楚的说明了 多播委托 :一个委托变量可以存放多个方法,就像一条锁链一样
- 多播委托与事件的案例
- 委托 创建 调用 多播委托 事件 委托与事件的区别
- 【原创】C# 委托与事件的传递与封装案例
- 再看事件(内含多播委托)
- 委托的应用之二:使用多播委托编码Observer模式。以及事件的引入
- 14 C# 第十三章 事件和委托(一) 多播委托的问题
- 【C#】委托的多播
- 事件和委托的小案例
- C#事件-事件本身就是一种多播委托
- C# 事件委托案例
- 事件委托案例
- c#委托 与多播委托delegate +=
- 事件与委托的问题???
- c#的委托与事件
- C#的委托与事件
- .net的事件与委托
- 委托与事件的区别
- 委托与事件的区别
- Linux 写SD卡时数据异常
- 系统模拟登陆界面 二
- lisp小程序,useless
- gef
- 指针的初始化
- 多播委托与事件的案例
- 如何在直接引入的php文件中使用Joomla的类库
- android基础知识06:intent和intentfilter
- Linux 时间转字符串(格式化时间)
- 在MFC中应用CTreeCtrl控件的技巧
- 8种常用图像处理算法
- hdu 1754 I hate it(线段树)
- 貓空纜車 現代與自然的旅遊結合
- 【学习点滴-数据结构-二叉树】求二叉树两个节点之间的最大距离