0

インデクサーを作成するには、次の形式を使用します。

class ClassName
{
    DataType[] ArrayName = new DataType[Length]; 

    public DataType this[int i]
    {
        get { return ArrayName[i]; }
    }
}

カスタム インデクサーを使用することもできますが、簡単にするためにこの形式を使用しました。私の理解によると、インデックス付きの適切な配列を保持しています。

私の質問は:

  1. テンプレート化されたプロパティですか?
  2. このインデクサーを使用して高度なコード最適化を実現できるのはいつ、どこでしょうか?
4

2 に答える 2

2

コードの最適化に関するものではありません。
保持するコレクションからアイテムを取得できるクラスにメソッドを作成できます。

例えば

public DataType GetItemByIndex(int i)
{
}

インデクサーは、ユーザーがインスタンスを配列またはコレクションとして扱えるようにするための「シンタックス シュガー」です。

于 2009-08-20T16:31:43.847 に答える
1

これはテンプレート化されたプロパティではなく、パラメーターを使用するプロパティです。つまり、パラメーター引数を受け入れるプロパティです。

これは、パラメータのないプロパティの代わりにコンパイラによって通常発行されるメソッドget_Item(Int32)の代わりに、単純なメソッドに要約されます。get_Item()このため、最適化の機会はあまり開かれません。

于 2009-08-20T16:27:12.810 に答える