面向对象程序设计C委托.pptxVIP

  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文档。上传文档
查看更多

2025/9/6常熟理工计算机科学与工程学院1面向对象程序设计基于.NET平台委托

委托定义2025/9/6常熟理工计算机学院杨剑勇201040203委托也叫代理,就是把事情交付给别人去办,如委托律师代理打官司,委托同学代买火车票等。C#中如果将一个方法委托给一个对象,那么这个对象就可以全权代理这个方法的执行。使用委托首先要定义委托,声明委托能代理什么类型的方法,就像房产中介能代理抵押贷款业务而不能代理打官司一样定义委托的语法如下:

访问修饰符delegate返回类型委托名();

委托的用法2025/9/6常熟理工计算机学院杨剑勇301定义了委托之后,要使用委托首先要实例化委托。03然后通过调用委托,执行相关方法的代码,实现委托。02实例化委托就是将其指向某个方法,即调用委托的构造函数,并将相关联的方法作为参数传递。

委托案例说明(数组排序)2025/9/6常熟理工计算机学院杨剑勇4dotNET_C#_OO_Delegate_ArraySort1、定义一个类SortArray其中有数组排序的方法SortArrayMethod2、Program中定义一个委托SortDelegate(int[]x)3、声明委托SortDelegatemyDelegate;后实例化委托:myDelegate=newSortDelegate(SortArray.SortArrayMethod);4、调用委托:myDelegate(arr)

委托案例说明(委托的增加减少)2025/9/6常熟理工计算机学院杨剑勇5dotNET_C#_OO_Delegate_MultiDelegate1、定义一个类NumberOperation,其中有数操作的方法Square、SquareRoot2、Program中定义一个委托delegatevoidMyDelegate(doubledValue);3、声明实例化委托: MyDelegatedlg=newMyDelegate(myNO.Square);4、增减委托:(+=/-=增减方法,若同方法添加两次,则执行两次) dlg+=newMyDelegate(myNO.SquareRoot);//向委托添加方法 dlg-=newMyDelegate(myNO.SquareRoot);//从委托移除方法

委托案例说明(多方法委托)2025/9/6常熟理工计算机学院杨剑勇601020304dotNET_C#_OO_Delegate_MultiMethodsFilterArray(int[]intArray,NumberPredicatepredicate)05privatestaticboolIsOdd(intnumber)privatestaticListintprivatestaticboolIsEven(intnumber)privatestaticboolIsOver5(intnumber)06

委托案例说明(委托的协变和逆变)2025/9/6常熟理工计算机学院杨剑勇7dotNET_C#_OO_Delegate_Coconvariant声明返回类型为Person类实例的委托delegatePersonCreatePersonHandle(stringFirstName,stringLastName,intAge);声明参数为Employee类实例的委托delegatevoidShowEmployeeHandle(Employeeemp);委托的协变:委托的返回类型比方法返回类型的抽象级别高,进行隐式转换表现形式是方法返回的类型,是委托声明中返回类型的派生类。CreatePersonHandleeh=CreateEmployee;Employeeemployee=((Employee)eh(Pony,Smith,41));委托的逆变:委托的参数类型比方法参数类型的抽象级别低,进行隐式转换表现形式是方法的参数类型,是委托声明中参数的基类。ShowEmployeeHandleph=ShowPerson;ph(employee);

事件2025/9/6常熟理工计算机学院杨剑勇8事件是C#中一个高级概念,是操作发生时允许执行特定于应用程序的代码的机制。事件要么在相关联的操作发生前发生(事前事件),要么在操作发生后发生(事后事件)。例如,当用户单击窗口中的按钮时,将引发一个事后事件,以允许执行特定于应用程序的方法。

2025/9/6常熟理工计算机科学与工程学院9感谢您

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档