NET应用程序开发技术与项目实践(C#版)Chapter_04.pptVIP

NET应用程序开发技术与项目实践(C#版)Chapter_04.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档