为什么不能通过C#中的索引访问单个System.Array元素?

时间:2012-09-20 23:56:28

标签: c# oop

采用以下示例:

class MyArray {
    private Array _array;

    public MyArray(Array array) {
        _array = array;
    }

    public object this[int index] {
        get { return _array[index]; }
        set { _array[index]=value; }
    }
 }

这将返回编译错误“无法访问私有索引器'此'此处'

但是,如果将_array声明为object [],则此函数可以正常工作。

这是否与值数组和引用之间的差异有关?

2 个答案:

答案 0 :(得分:6)

您不打算使用Array

  

Array类是支持数组的语言实现的基类。但是,只有系统和编译器可以从Array类中显式派生。用户应该使用该语言提供的数组结构。

http://msdn.microsoft.com/en-us/library/system.array.aspx

答案 1 :(得分:0)

正如您可以看到类Array的描述:

  

提供创建,操作,搜索和排序的方法   数组,从而作为公共中所有数组的基类   语言运行时。

该类没有索引器。如果您正在使用数组,则可以使用object []或使用List<>