C#索引器(Indexer)

索引器(Indexer)允许一个对象可以像数组一样使用下标的方式来访问.

当为类定义一个索引器时,该类的行为就会像一个虚拟数组(virtual array) 一样.可以使用数组访问运算符[]来访问该类的成员.

语法

一维索引器的语法如下:

element-type this[int index]

{

// get 访问器

get

{

// 返回 index 指定的值

}

// set 访问器

set

{

// 设置 index 指定的值

}

}

索引器(Indexer)的用途

索引器的行为的声明在某种程度上类似于属性(Property).就像属性(property),可以使用get和set访问器来定义索引器.但是,属性返回或设置一个特定的数据成员,而索引器返回或设置对象实例的一个特定值.换句话说,它把实例数据分为更小的部分,并索引每个部分,获取或设置每个部分.

定义一个属性(property)包括提供属性名称,索引器定义的时候不带有名称,但带有this关键字,它指向对象定义.

实例演示:

重载索引器(Indexer)

索引器(Indexer)可被重载.索引器声明的时候也可带有多个参数,且每个参数可以是不同的类型.没有必要让索引器碧玺是整形的,C#允许索引器可以是其他类型,例如:字符串类型.

下面的实例演示了重载索引器:

相关推荐
切糕师学AI4 小时前
环形缓冲区(Ring Buffer / Circular Buffer)详解:原理、优势、应用与高性能实现
数据结构·环形缓冲区
WolfGang0073215 小时前
代码随想录算法训练营 Day50 | 图论 part08
数据结构·算法·图论
晚枫歌F7 小时前
最小堆定时器
数据结构·算法
嫩萝卜头儿8 小时前
2 - 复杂度收尾 + 链表经典OJ
数据结构·算法·链表·复杂度
样例过了就是过了9 小时前
LeetCode热题100 分割等和子集
数据结构·c++·算法·leetcode·动态规划
木木_王9 小时前
嵌入式Linux学习 | 数据结构 (Day05) 栈与队列详解(原理 + C 语言实现 + 实战实验 + 易错点剖析)
linux·c语言·开发语言·数据结构·笔记·学习
北顾笙9809 小时前
day38-数据结构力扣
数据结构·算法·leetcode
m0_629494739 小时前
LeetCode 热题 100-----14.合并区间
数据结构·算法·leetcode
@小码农10 小时前
2026年3月Scratch图形化编程等级考试一级真题试卷
开发语言·数据结构·c++·算法
_日拱一卒12 小时前
LeetCode:226翻转二叉树
数据结构·算法·leetcode