1

次の例を見てください。

class MyArray {
    private Array _array;

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

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

これにより、「ここでプライベートインデクサー'this'にアクセスできません」というコンパイルエラーが返されます。

ただし、_arrayがobject []として宣言されている場合、これは正常に機能します。

これは、値の配列と参照の違いと関係がありますか?

4

2 に答える 2

6

あなたは使用することを意図していませんArray

Arrayクラスは、配列をサポートする言語実装の基本クラスです。ただし、Arrayクラスから明示的に派生できるのは、システムとコンパイラのみです。ユーザーは、言語によって提供される配列構造を使用する必要があります。

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

于 2012-09-21T00:03:40.850 に答える
0

ご覧のとおり、クラスArrayの説明は次のとおりです。

配列を作成、操作、検索、およびソートするためのメソッドを提供します。これにより、共通言語ランタイムのすべての配列の基本クラスとして機能します。

クラスにはインデクサーがありません。配列で作業している場合は、代わりにobject []を使用するか、List<>を使用できます。

于 2012-09-21T00:14:10.640 に答える