5),C#_索引器

索引器是一组get和set访问器,与属性类似.
------------------------------------------------------------------------------------------------
索引器和属性
索引器和属性在很多方面是相似的.
1).和属性一样,索引器不用分配内存来存储.
2).索引器和属性都主要被用来访问其他数据成员,它们与这些成员关联,并为它们提供获取和设置访问.
属性通常便是单独的数据成员.
索引器通常 表示多个数据成员.
说明:
可以认为索引器是为类的多个数据成员提供get和set属性.通过提供索引器,可以在许多可能的数据成员中进行选择.索引器本身可以是任何类型,不仅仅是数值类型.
关于索引器,还有一些注意事项如下.
和属性一样,索引器可以只有一个访问器,也可以两个都有.
索引器总是实例成员.因此不能声明为static.
和属性一样,实现get和set访问器的代码不必一定要关联到某个字段或属性.这段代码可以做任何事情或什么也不做,只要get访问器返回某个指定类型的值即可.
-----------------------------------------------------------------------------------------------
声明索引器
声明索引器的语法如下.请注意以下几点.
1).索引器没有名称.在名称的位置是关键字this.
2).参数列表在方括号中间.
3).参数列表中必须至少声明一个参数.
声明索引器类似于声明属性.
-----------------------------------------------------------------------------------------------
索引器的set访问器
当索引器被用于赋值时,set访问器被调用,并接受两项数据,如下:
一个隐式参数,名称为value,value持有要保存的数据;
一个或更多索引参数,表示数据应该保存到哪里.
在set访问器中的代码必须检查索引参数,以确定数据应该存往何处,然后保存它.
set访问器有如下语义.
它的返回类型为void.
它使用的参数列表和索引器声明中的相同.
它有一个名称为value的隐式参数,值参类型和索引类型相同.
----------------------------------------------------------------------------------------------
索引器的get访问器
当使用索引器获取值时,可以通过一个或多个参数调用get访问器.索引参数指示获取哪个值.
get访问器方法体内的代码必须检查索引参数,确定它表示的是哪个字段,并返回该字段的值.
----------------------------------------------------------------------------------------------
关于索引器的补充
和属性一样,不能显式调用get和set访问器.取而代之,当索引器用在表达式中取值时,将自动调用get访问器.当使用赋值语句对索引器赋值时,将自动调用set访问器.
在"调用"索引器时,要在方括号中间提供参数.
---------------------------------------------------------------------------------------------
索引器重载
只要索引器的参数列表不同,类就可以有任意多个索引器.索引器类型不同是不够的.这叫做索引器重载,因此所有的索引器都有相同的"名称":this访问引用.

猜你喜欢

转载自www.cnblogs.com/linchenjian/p/11430559.html