您的位置:首页 > 编程语言 > C#

细谈C#中的索引器跟属性的区别

2009-09-27 18:59 239 查看
细谈C#中的索引器跟属性的区别:
索引器允许您按照与数组的方式对类、结构、接口进行索引。注意要声明类或结构上的索引,一定要使用this关键字

,比如:public int this [int index]
索引器的特点:
1)允许调用对象上的方法,如同对象是一个数组。
2)可以通过索引器进行访问。
3)必须为实例成员。
4)索引器的get访问器具有与索引器相同的行参列表。
5)除了value参数外,索引器的set访问器还具有与索引器相同的行参表。

属性的特点:
1)允许调用方法,如同它们是公共数据成员。
2)可以通过简单的名称进行访问。
3)可以为静态成员或者实例成员。
4)属性的get访问器没有参数。
5)属性的set访问器包含隐式value参数。

举个例子说明如何声明私有数组和索引器,使用索引器访问实例test[i]代码如下:
class IndexerClass
{
private int[] arr=new int [100];
public int this[int index]
{
get
{
if (index<0||index>=100)
{
return 0;
}
else
{
return arr[index];
}
}
set
{
if(!(index<0||index>=100))
{
arr[index]=value;
}
}
}
}
class MainClass
{
static void Main()
{
IndexerClass test =new IndexerClass();
test[3]=256;
test[5]=1024;
for(int i=0;i<=10;i++)
{
System.Console.WriteLine("Element#{0}={1}",i,test[i]);
}
}
}
请注意,当计算索引器的访问时(例如,在 Console.Write 语句中),将调用 get 访问器。因此,如果 get 访问器不存在,将发生编译时错误。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/codeshark/archive/2007/11/24/1900699.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: