索引器定义类似于属性,但其功能与属性并不相同。索引器提供一种特殊的方法编写get和set访问器。属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员。定义索引器的语法如下: <访问修饰符> 类型名称 this [类型名称 参数名] get{//获得属性的代码} set{ //设置属性的代码} } 索引器没有像属性和方法那样的名字,关键字this清楚地表达了索引器引用对象的特征。和属性一样,value关键字在set后的语句块里有参数传递意义。 和方法一样,索引器有5种存取保护级别new、public、protected、internal、private,和4种继承行为修饰virtual、sealed、override、abstract,以及外部索引器。这些行为同方法没有任何差别。唯一不同的是索引器不能为静态(static),这在对象引用的语义下很容易理解。值得注意的是在重写(override)实现索引器时,应该用base[E]来存取父类的索引器。 索引器的参数列表也是值得注意的地方。“索引”的特征使得索引器必须具备至少一个参数,该参数位于this关键字之后的中括号内。索引器的参数也只能是传值类型,不可以有ref(引用)和out(输出)修饰。参数的数据类型可以是C#中的任何数据类型。C#根据不同的参数签名来进行索引器的多态辨析。中括号内的所有参数在get和set下都可以引用,而value关键字只能在set下作为传递参数。 |
C#索引器-索引器的定义
最新推荐文章于 2023-07-19 11:02:53 发布