C#索引器该怎么用?

 我来答
月光uDu
推荐于2016-09-24 · TA获得超过127个赞
知道答主
回答量:88
采纳率:0%
帮助的人:62.8万
展开全部
索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。它可以使得像数组那样对对象使用下标。它提供了通过索引方式方便地访问类的数据信息的方法。

要声明类或结构上的索引器,请使用this关键字,例如:

public int this[int index] //声明索引器
{
// get and set 访问
}

索引器的修饰符有:new、public、protected、internal、private、virtual、sealed、override、abstract和extern。当索引器声明包含extern修饰符时,称该索引器为外部索引器。因为外部索引器声明不提供任何实际的实现,所以它的每个访问器声明都由一个分号组成。

索引器的签名由其形参的数量和类型组成。它不包括索引器类型或形参名。如果在同一类中声明一个以上的索引器,则它们必须具有不同的签名。

索引器值不归类为变量;因此,不能将索引器值作为ref或out参数来传递。

下面用一个例子来说明如何声明和使用索引器。

在本示例中,定义了一个泛型类,并为其提供了简单的get和set访问器方法(作为分配和检索值的方法)。Program 类为存储字符串创建了此类的一个实例。代码如下:

class SampleCollection<T>
{
private T []arr=newT[100];
public T this[inti]
{
get
{
returnarr[i];
}
set
{
arr[i]=value;
}
}
}

下面是如何使用上述代码实现的索引器,具体代码示例如下:
classProgram
{
staticvoidMain(string[]args)
{
SampleCollection <string> 锁=newSampleCollection<string>();
s[0]="索引器的使用";
System.Console.WriteLine(锁[0]);
}
}

C#并不将索引类型限制为整数。例如,对索引器使用字符串可能是有用的。通过搜索集合内的字符串并返回相应的值,可以实现此类的索引器。由于访问器可被重载,字符串和整数版本可以共存。
zoeimcc
2008-12-26
知道答主
回答量:55
采纳率:0%
帮助的人:25.7万
展开全部
数组内部使用的就是引器。
public int this[int index] //声明索引器
{
// get and set 访问 这里的操作往往是自己定的规则
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
samirliang
2008-12-24 · TA获得超过186个赞
知道小有建树答主
回答量:520
采纳率:0%
帮助的人:98.7万
展开全部
和数组下标差不多哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式