Ch6集合、索引器与泛型.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.2.1 索引器的定义与使用 定义索引器的方式与定义属性有些类似,其一般形式如下 [修饰符] 数据类型 this[索引类型 index] { get { //获得属性的代码 } set { //设置属性的代码 } } 6.2.1 索引器的定义与使用 2.索引器的使用 通过索引器可以存取类的实例的数组成员,操作方法与数组相似,一般形式如下: 对象名[索引] 其中,索引的数据类型必须与索引器的索引类型相同。 【实例6-3】利用前面定义的索引器进行照片的添加和查询 6.2.1 索引器的定义与使用 3.接口中的索引器 在接口中也可以声明索引器,接口索引器与类索引器的区别有两个:一是接口索引器不使用修饰符;二是接口索引器只包含访问器get或set,没有实现语句。访问器的用途是指示索引器是可读写、只读还是只写的,如果是可读写的,访问器get和set均不能省略;如果是只读的,省略set访问器;如果是只写的,省略get访问器。 例如: public interface IAddress { string this[int index] { get; set; } //声明索引器 string Address { get; set; } //声明属性 string Answer(); //声明方法 } 6.2.2 索引器与属性的比较 索引器与属性都是类的成员,语法上非常类似。索引器一般用在自定义的集合类中,通过使用索引器来操作集合对象就如同使用数组一样简单;而属性可用于任何自定义类,它增强了类的字段成员的灵活性。 6.3 泛型 6.3.1 泛型概述 6.3.2 泛型集合 6.3.3 泛型类、泛型方法和泛型接口 返回 6.3.1 泛型概述 利用数组来管理数据,虽然直观、容易理解,但存在很大的局限性,仍然需要重复编写几乎完全相同的代码来完成排序和查找操作。为此,C#提供了一种更加抽象的数据类型—泛型,以克服数组的不足。当利用泛型来声明这样一个更抽象的数据类型之后,再也不需要针对诸如整数、小数、字符、字符串等数据重复编写几乎完全相同的代码。具体思路如下: 首先声明这种泛型数据类型,声明时不用指定要处理的数据的类型,只讨论抽象的数据操作,如排序、查找等。在实际引用这种泛型数据类型时,先确定要处理的数据类型,再执行相应的操作。因此,泛型是一种“泛泛而谈”的数据类型。 6.3.1 泛型概述 泛型的另一个优点是“类型安全”,上面提到的集合类是没有类型化的,以ArrayList为例,继承自System.Object的任何对象都可以存储在ArrayList中,下面的例子在ArrayList类型的集合中添加一个整数、一个字符串和一个Student类型的对象: ArrayList list = new ArrayList(); list.Add(44); list.Add(mystring); list.Add(new Student(令狐冲,1001)); 6.3.1 泛型概述 如果这个集合使用下面的foreach语句遍历,而该foreach语句将每个元素转换成int进行遍历,编译器会编译通过这段代码。但并不是集合中的所有元素都可以转换为int,所以会出现一个运行异常: foreach (object o in list) { Console.WriteLine((int)o); } 而采用泛型,可以较早的检查放入集合中的元素是否是预定的类型,以保证类型安全。 6.3.1 泛型概述 .NET Framework在System.Collections.Generic和System.Collections.ObjectMode命名空间中就提供了大量的泛型集合类,如List、Queue、Stack、Dictionary等,这些集合类基本上都提供了增加、删除、清除、排序和返回集合元素值的操作方法,这些操作方法对任意类型的数据都有效。 6.3.2 泛型集合 泛型最常见的用途是创建集合类,泛型集合可以约束集合内的元素类型。典型泛型集合包括ListT、DictionaryK,V等。(T、K,V

文档评论(0)

ranfand + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档