- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
九 索引器 索引器:使得可以像数组那样对对象使用下标,它为我们提供了通过索引方式方便地访问类的数据信息的方法 索引器的名称只能是this,必须至少有一个参数 可以重载,因为索引器有参数 可以通过索引器方便的访问类中的数组或者集合 在给对象中的数组元素赋值的时候,可以准备好一个,给对象中的数组元素赋一个值,不必等到所有的值都准备好,然后再赋值。 索引器 索引器语法: 类中的集合或数组 访问修饰符 返回类型 this [ 参数列表 ] { get { return 类中的集合或数组[ 参数列表 ]; } set { 类中的集合或数组 [ 参数列表 ]=value;//必须是value } } 不使用索引器 使用索引器 父类和子类中可以存在同名方法,这些同名的方法可以分为重载、重写和隐藏三种类型。1. 重载定义方法名相同,但是方法的参数列表不同。能通过传递不同的参数来决定到底调用哪一个方法。注意返回值类型不同不能构成重载。 2. 重写父类方法中使用virtual关键字,子类方法中使用override关键字声明的同名方法,父类子类的同名方法名称相同,参数列表也相同。 3. 隐藏父类中的方法不声明为vitrual(默认为非虚方法),在子类中声明与父类同名时,需使用new关键字,以隐藏父类同名方法 统一的标准——接口 接口是面向对象编程的一个重要技术,在C#中负责实现多重继承。 一个接口定义一个协定,实现接口的类或结构必须遵守其协定。 接口的定义 接口可由方法、属性、事件、索引器或这四种成员类型的任何组合构成。 接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。接口成员一定是公共的。 访问修饰符 interface 接口名{//接口主体} 接口不能包含接口所定义的成员的任何实现语句,接口只指定实现该接口的类或接口必须提供的成员 接口的实现 定义了接口后,就要在类或结构中实现。 类和接口的关系称为实现。 实现接口的语法和继承类一样,都有“:”,接口中的方法在类中实现时不是重载,不需要使用override关键字。 接口中不能定义构造函数,所以接口不能实例化。 接口的实现 接口必须经由类或者结构进行实现 class 类名 :接口名称1,接口名称2{//实现接口1,2中的成员} 接口的实现 接口的继承 子类可以继承一个父类,但可以实现多个接口。C#中的子类只能有一个基类,不支持多重继承。 在C#中这属于多重继承,要用接口来实现,其实接口就是为了实现多重继承而产生的。 C#中接口可以多继承,接口之间可以互相继承和多继承。 委托 委托是什么? C#中的一种引用类型 ,一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值 委托 使用委托的理由 在运行的时候,我们才知道该调用哪个方法,在这之前我们只知道方法的返回类型和将要传递给方法的参数,至于哪个方法去执行,我们并不知道,其实我们也不关心,我们关心的是方法执行的结果 委托是一种安全的类型操作 委托 使用委托的理由 在运行的时候,我们才知道该调用哪个方法,在这之前我们只知道方法的返回类型和将要传递给方法的参数,至于哪个方法去执行,我们并不知道,其实我们也不关心,我们关心的是方法执行的结果 委托是一种安全的类型操作 委托 使用委托的步骤 定义一个委托 创建委托实例 将方法的细节传递给委托实例 调用委托方法 定义委托 语法: 修饰符 delegate 返回类型 委托名称(参数列表); 从具体的语法上看,定义委托类似于方法的定义,因为我们可以通过委托来调用方法,所以在委托定义的时候要声明方法的返回类型和参数列表 创建委托实例,包装方法 语法: 修饰符 委托实例名称 =new 委托名称(方法名称); 实例化委托类似于类的实例化 方法名称:可以是静态方法,也可以是对象方法 调用委托方法 语法: 委托实例名称(参数); 变量=委托实例名称(参数); 调用委托方法,类似于调用普通方法 委托示例 委托示例 多播委托 语法: 委托第一个方法 委托引用=new 委托名称(方法名称); 第二个以后的方法 委托引用+=new 委托名称(方法名称); 可以将多个方法委托给一个委托实例,那么委托在调用的时候,只返回最后一个方法的返回值,前面方法的返回值被冲掉了 因此在一个委托实例中封装了多个方法时,应该将委托的返回类型定义为void 多播委托示例 多播委托示例 事件 事件源,事件,监听器 事件:是类或者对象用来“发出通知”的成员,通过提供事件的句柄,客户能够把事件和可执行代码联系在一起 事件 发送器:发送事件的对象,负责引发事件 接收器:在事件发
您可能关注的文档
- TekVPI新型探头接口提供了杰出的通用性与简便易用性(51C-19045-0).pdf
- 高二地理城市内部空间结构不同等级城市服务功能.ppt
- 数据结构 CH3栈与队列.pdf
- 第4节 查询3hcy.ppt
- 第1节 计算机体系结构.ppt
- 第四章 双因素和多因素SPSS方差分析.ppt
- 第2章 基本数据类型及常用库函数.ppt
- 第1章 Java语言概述及编程环境.ppt
- 图形的整合及解构.ppt
- 第六节 Verilog HDL高级程序设计举例.ppt
- 期末全真测试卷(教科版)六年级科学下册.docx
- Unit3Healthyorunhealthy?(课件)沪教牛津版(深圳用)英语六年级上册.pptx
- 农业现代化与农村地理(1).pptx
- 农业工程与农业机械技术教学总结.pptx
- Module9Unit3Languageinuse课件英语八年级下册.pptx
- 安徽省黄山市八年级下学期期末考试英语试题(原卷版).docx
- xx关于劳动节的演讲稿字篇范文.pptx
- Module4写作能力提升练英语八年级下册(1).pptx
- Unit1NatureinthebalanceIntegratedskills课件高中英语译林版.pptx
- Unit2WildlifeProtection单词记忆课件高中英语人教版.pptx
文档评论(0)