什么是索引器?
索引器是C#引入的一个新型的类成员,它使的类中对象可以像数组那样方便、直观的被引用。
索引器允许按照与数组相同的方式对类、结构或接口进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。它可以像数组那样对对象使用下标,另外,它还提供了通过索引方式方便地访问类的数据信息的方法。
1、索引器的定义
C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。
定义索引器的方式与定义属性有些类似,其一般形式如下:
[修饰符] 数据类型 this[索引类型 index]
{
get
set
}
2.索引器具有以下特点:
索引器类型及其参数类型必须至少如同索引器本身一样是可访问的;
索引器的签名由其形参的数量和类型组成,它不包括索引器类型或形参名。如果在同一类中声明一个以上的索引器,则它们必须具有不同的签名;
索引器值不归类为变量,因此,不能将索引器值作为ref或out参数来传递。
3.定义索引器应注意以下内容:
1、所有索引器都使用this关键词来取代方法名。Class或Struct只允许定义一个索引器,而且总是命名为this。
2、索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。
3、get 访问器返回值。set 访问器分配值。
4、this 关键字用于定义索引。
5、value 关键字用于定义由 set 索引器分配的值。
6、索引器不一定根据整数值进行索引,您可以根据编程要求指定参数类型。
7、索引器可被重载。
8、索引器可以有多个形参,例如当访问二维数组时。
9、索引器的方括号中可以是任意参数列表。
4.索引器与数组的比较:
1.索引器的索引值不(index)类型不受限为整数:用来访问数组的索引器,其类型只能是整数,索引器可以为其他类型。
2.索引器允许重载(Overloading):一个类并不限制只能定义一个索引器,只要索引器函数签名不同,一个类可以拥有很多个索引器,可以重载他的功能。
3.索引器不是一个变量:索引器并没有直接对应应用数据存储的地方,而数组则有。索引器有get和set访问器,用来读取或写入索引器元素时,需要执行的代码。
转载自原文链接, 如需删除请联系管理员。
原文链接:什么是索引器?,转载请注明来源!