C#教学第15讲索引器1(学习笔记)

来源:互联网 发布:淘宝违规方式 编辑:程序博客网 时间:2024/05/20 20:21
第15讲索引器1
快乐乔巴的博客
  视频讲师:陈广老师
  大家好,今天我们来讲索引器(indexer)。
  索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。索引器也被称为有参属性,下面我们来看看索引器跟数组和属性之间有什么不同。
  我们新建一个空白文件,首先先看看类数组是怎么使用的:

通过运行,我们可以得到结果,各自人名都能显示出来。

  好,下面我们声明一个带索引器的类。

我们运行代码,效果如下:
结果

  我们看,a[0]a[1]a[2]是类数组,b[0]b[1]b[2]是索引器,它们得到的结果是一样的。我们来看索引器和类数组有什么区别。类数组存放的是一个一个类的实例,当然类数组的实质呢它只是存取托管堆中的内存指针,而这些内存指针就指向托管堆中的一个一个类。而索引器呢,它的这些名字(张三李四王五)其实是存放在索引器里的一个数组里面,这样呢索引器只需要声明一个实例,而类数组需要声明多个实例,当然i这个索引器并没有写完全。在get和set访问器中应该判断index的取值范围(0~9)。
  这里我们也看到索引器呢提供了一i种数组封装到类的一种方法,就好象在类里面封装string或者int类型的对象一样。为了数据的安全,也可以把数据封装到类里,索引器有一个比类数组更为灵活的地方,就是它的索引值并不一定必须为整数,也就是说索引器的索引值可以为其他的数据类型,好下面我们来试验一下:
  首先介绍下Hashtable,在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key和value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应key值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对

运行代码后能正常的显示。
  索引器还有一个更为吸引人的地方,就是它能够被重载。我们现在再对程序做些修改:

运行代码编译之后,效果如下:
结果
  我们看,运行成功。我们通过字符索引来给索引器赋值,跟前面的这个用数字索引给索引器赋值有所不同,这个是重载。实际项目上并不符合逻辑,这里只是为了给大家做一个演示。
  好,这节课就演示到这里。
由快乐乔巴听课摘写笔记
原创粉丝点击