- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.5.2 实例化委托 因为委托是一个类型,定义委托后,必须实例化才能使用。实例化委托的过程就是将委托和方法或代码关联的过程。实例化委托时,将会调用委托的构造函数,并将与委托相关联的方法地址(即方法名)作为参数传给它。 【例4-13】 下面示例演示了将上述代码段的CallFun委托实例化的过程。 public delegate int CallFun(int a,int b); //声明一个委托类型 class MathsOperations { public int MulFun(int a,int b) { return a*b; } public int AddFun(int a,int b) { return a+b; } } class Test { static void Main() { CallFun delegateObj; //声明该委托类型的变量 MathsOperations math=new MathsOperations (); //创建委托对象,同时指定要引用的方法 delegateObj=new CallFun(math.MulFun); //调用委托的代码见下节 //… } } 在上述代码中,首先定义了一个MathsOperations类,在该类中创建了两个实例方法MulFun和AddFun,注意它们的方法参数和返回值必须和委托类声明相同,否则委托将不能关联这两个方法。接下来在测试类Test的Main方法的第一行声明委托对象delegateObj,在下一行创建类MathsOperations的一个对象math,最后,将该对象中的方法MulFun地址传给delegateObj的构造函数,从而将委托对象(delegateObj)与方法MulFun关联起来。 在?.NET?2.0版本中,实例化委托有了更为简明的方式,下面这段代码是可行的。 delegateObj=math.MulFun; 4.5.3 使用委托 使用委托意味着使用委托来将信息发送给关联的方法。使用委托的方式与方法调用相同,唯一的区别在于没有调用委托的实现(该实现并不存在),而是调用与该委托关联的方法的代码。委托对象可以有参数,这个参数并没有被委托使用,而是传递给关联的方法,由关联的方法进行处理并将结果传给委托。 在上面的示例中,如果调用委托实际是调用MulFun方法,如下面的代码段所示: … //接例4-3代码 int t=delegateObj(5,3); Console.WriteLine(结果是{0},t); 最终的运行结果是15。 委托不仅可以关联实例方法,也可以关联静态方法。 【例4-14】 下例演示了使用委托引用实例方法和静态方法的过程。 // 声明一个委托 delegate void Del(); class SampleClass { public void InstanceMethod() //实例方法 { System.Console.WriteLine(A message from the instance method.); } static public void StaticMethod() //静态方法
您可能关注的文档
- 新Visual Basic程序设计与应用 曾强聪 教学课件 4918.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch01.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch02.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch03.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch04.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch05.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch06.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch07.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch08.ppt
- 新Visual C# 2005程序设计教程 教学课件 978 7 302 19477 4 ch09.ppt
- 新Visual C_.NET程序设计基础 教学课件 曾文权 1 6 005.ppt
- 新Visual C_.NET程序设计基础 教学课件 曾文权 1 6 006.ppt
- 新Visual C_.NET程序设计基础 教学课件 曾文权 7 11 007.ppt
- 新Visual C_.NET程序设计基础 教学课件 曾文权 7 11 008.ppt
- 新Visual C_.NET程序设计基础 教学课件 曾文权 7 11 009.ppt
- 新Visual C_.NET程序设计基础 教学课件 曾文权 7 11 010.ppt
- 新Visual C_.NET程序设计基础 教学课件 曾文权 7 11 011.ppt
- 新Visual C_.NET程序设计基础 教学课件 曾文权 7 11 封面及目录.ppt
- 新Visual FoxPro 6.0程序设计教程 第二版 教学课件 丁爱萍 第1 5章 第1章.ppt
- 新Visual FoxPro 6.0程序设计教程 第二版 教学课件 丁爱萍 第1 5章 第2章.ppt
最近下载
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案.docx VIP
- 国际象棋的课程教案.docx VIP
- 器械科制度汇编.pdf
- 2025年新人教版7年级英语上册全册教学课件.pptx
- 第七章 集装箱码头船舶配积载业务.ppt VIP
- 风中奇缘-中英文台词打印版.doc VIP
- 《机电概念设计基础》课件——运动副.pptx VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 孙子兵法中的思维智慧 智慧树网课章节测试答案 .docx VIP
- 二 《“友邦惊诧”论》(教学设计)-【中职专用】高二语文同步精品课堂(高教版2024·拓展模块上册).docx VIP
文档评论(0)