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

Ben*_*ner 1 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; }
    }
 }
Run Code Online (Sandbox Code Playgroud)

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

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

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

spe*_*der 6

你不打算用Array:

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

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