- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
知识链接 C#中接口的特点 知识链接 知识链接 * 不是结束 ,是开始 4.4 委托与事件 委托的概念 1 定义和使用委托 2 事件的概念 3 定义和使用事件 4 总结与提高 5 6 4 5 6 任务描述 一个简单的热水器报警程序 3 4 5 6 任务实现 3 4 5 6 任务实现 3 4 5 6 任务实现 3 4 5 6 知识链接 4.4.1 委托—函数指针优雅的封装 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值 委托是函数的封装,它代表一“类”函数。它们都符合一定的签名:拥有相同的参数列表、返回值类型。 委托也可以看成是对函数的抽象,是函数的“类”。此时,委托的实例将代表一个具体的函数 3 4 5 6 知识链接 委托的例子 委托同学去购买火车票 委托同学去餐厅买饭 委托律师代理打官司 委托同学替答道 3 4 5 6 知识链接 委托的定义 委托是一种类型,就像类一样,必须在使用前首先声明。声明委托时,要使用delegate关键字 委托定义了他能引用的方法的形式。你要指定返回类型、委托名称以及任何参数 public delegate void stopMachineryDelegate() 3 4 5 6 知识链接 创建委托对象 4 5 6 知识链接 从委托变量中添加方法和移除方法 你可以从绑定的调用方法列表中添加或者移除一个方法,使用+=或-=操作符 通过委托来调用方法 4 5 6 知识链接 * 定义委托 2-2 class Delegates { // 委托定义 public delegate int Call(int n1, int n2); class Math { // 乘法方法 public int Multiply(int n1, int n2) { return n1*n2; } // 除法方法 public int Divide(int n1, int n2) { if(n2!=0) return n1/n2; } } static void Main(string[] args) { // 委托的对象 Call objCall; // Math 类的对象 Math objMath = new Math(); // 将方法与委托关联起来 objCall = new Call(objMath.Multiply); // 将委托实例化 result = objCall(4, 3); System.Console.WriteLine(结果为 {0}, result); } 将方法与委托关联起来 3 4 5 6 知识链接 4.4.2 事件 对象发生了一件事情或对象的状态发生了变化 人生病了. 按钮被用户点击了. 窗口被关掉了 一个形态的颜色从红色变成蓝色 事件是操作发生时允许执行特定应用程序的代码的机制 事件发生后可能要进行一些处理 事件处理程序[方法] 事件与事件处理程序如何关联呢? 委托 3 4 5 6 知识链接 抢答者 宣布人 抢答者 “请听题~” 集中注意力聆听 其他人 事件源 事件的发布者 事件的订阅人 未订阅该事件 定义事件 为对象订阅该事件 将发生的事件通知给订阅人 3 4 5 6 知识链接 声明事件的语法 事件声明在一个类中,是类的成员,就像字段、属性方法一样 声明事件的关键字是event,该事件能够接受的处理方法必须和某委托的签名一致 事件通常被声明为public,这样其他的类和结构才可以注册它 事件的类型必须是委托 3 4 5 6 知识链接 引发事件的语法 在引发事件之前,必须检查是否是null 引发事件就好像是调用方法一样,其签名等同于它的委托的签名 3 4 5 6 知识链接 订阅事件的语法 订阅事件的语法类似于委托的语法,使用+= 取消事件订阅的语法,可以使用-= 3 4 5 6 知识链接 class TestEvents { [STAThread] static void Main(string[] args) { // 委托的对象 Delegate objDelegate = new Delegate(); // ClassA 的对象 ClassA objClassA = new ClassA(); // ClassB 的对象 ClassB objClassB = new ClassB(); // 订阅该事件 objDelegate.NotifyEveryOne += new Del
您可能关注的文档
- JavaEE教程(第2版)PPT第10章 模块化开发:网上购书系统.pptx
- JavaEE教程(第2版)PPT第2章 网页设计基础.pptx
- JavaEE教程(第2版)PPT第3章 JSP基础.pptx
- JavaEE教程(第2版)PPT第4章 JavaEE数据库应用基础.pptx
- JavaEE教程(第2版)PPT第5章 Struts2开发.pptx
- JavaEE教程(第2版)PPT第6章 Hibernate应用.pptx
- JavaEE教程(第2版)PPT第7章 Spring应用.pptx
- JavaEE教程(第2版)PPT第8章 Struts 2、Hibernate和Spring整合:学生成绩管理系统.pptx
- JavaEE教程(第2版)PPT第9章 Ajax.pptx
- JavaEE教程(第2版)PPT表10.1~表10.5.docx
- NET应用程序开发技术与项目实践(C#版)Chapter_05.ppt
- NET应用程序开发技术与项目实践(C#版)Chapter_06.ppt
- NET应用程序开发技术与项目实践(C#版)Chapter_07.ppt
- NET应用程序开发技术与项目实践(C#版)Chapter_08.ppt
- NET应用程序开发技术与项目实践(C#版)Chapter_09.ppt
- NET应用程序开发技术与项目实践(C#版)Chapter_10.ppt
- NET应用程序开发技术与项目实践(C#版)习题课.ppt
- office2010办公自动化高级应用全套配套课件向健极肖静电子资源Excel任务1.pptx
- office2010办公自动化高级应用全套配套课件向健极肖静电子资源Excel任务1建立学生情况表(3-1)教案.doc
- office2010办公自动化高级应用全套配套课件向健极肖静电子资源Excel任务2学生成绩表(3-2)教案.doc
最近下载
- 《陀螺》课文原文及练习题.doc VIP
- 骨质疏松骨折的治疗策略暨老年髋部骨折绿色通道建设课件.pptx
- 力士乐A6VM变量马达6系列样本资料和特性.pdf VIP
- 《鲁迅的生平》课件.ppt VIP
- 美国次贷危机复盘与启示.docx VIP
- 光学测试与测量软件:Phasics二次开发_(7).光学测试数据可视化与报告生成.docx VIP
- 大型工程建设全过程项目管理(126页).pptx VIP
- 单位工作收入证明范文.docx VIP
- 环卫保洁项目服务质量保证措施.docx VIP
- 光学测试与测量软件:Phasics二次开发_(6).Phasics软件在不同光学测试场景的应用实例.docx VIP
原创力文档


文档评论(0)