4

基本的にList<>特定のタイプ用にカプセル化されたクラスを作成しました。配列の場合は likeを使用して List 項目にアクセスできますが[]、新しいクラスに からその機能を継承させる方法がわかりませんList<>。これを検索してみましたが、やりたいことを正しく表現する方法がわからず、何も役に立たなかったと確信しています。

ありがとう!

4

3 に答える 3

9

これはインデクサーと呼ばれます:

public SomeType this[int index] {
    get { }
    set { }
}
于 2013-02-27T15:05:06.720 に答える
1

リストには既にインデクサーの定義があるため、そのコードを変更する必要はありません。デフォルトで動作します。

   public class MyClass : List<int>
   {

   }

ここでインデクサーにアクセスできます。何も実装していないにもかかわらず

MyClass myclass = new MyClass();
myclass.Add(1);
int i = myclass[0]; //Fetching the first value in our list ( 1 ) 

List クラスは継承されるように設計されていないことに注意してください。拡張するのではなく、カプセル化する必要があります。–サービス

そして、これは次のようになります

public class MyClass 
{
    private List<int> _InternalList = new List<int>();

    public int this[int i]
    {
        get { return _InternalList[i]; }
        set { _InternalList[i] = value; }
    }
}
于 2013-02-27T15:07:27.057 に答える
1

それはインデクサーと呼ばれます。

インデクサーを使用すると、配列のようにクラスまたは構造体のインスタンスにインデックスを付けることができます。インデクサーは、アクセサーがパラメーターを取ることを除いて、プロパティに似ています。

  • インデクサーを使用すると、配列と同様の方法でオブジェクトにインデックスを付けることができます。

  • アクセサーはget値を返します。setアクセサーは値を割り当てます。

  • キーワードは、thisインデクサーを定義するために使用されます。

  • キーワードは、valueセット インデクサーによって割り当てられる値を定義するために使用されます。

これがです。

于 2013-02-27T15:06:10.747 に答える