Использование индексатора C # - PullRequest
0 голосов
/ 20 августа 2009

Для индексатора мы используем следующий формат:

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

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

Ради простоты я использовал этот формат, хотя мы можем использовать и собственный индексатор. Насколько я понимаю, мы храним массив, который проиндексирован.

Мой вопрос:

  1. Это шаблонное свойство?
  2. Когда и где мы могли бы достичь высокой степени оптимизации кода, используя этот индексатор?

Ответы [ 2 ]

2 голосов
/ 20 августа 2009

Речь идет не об оптимизации кода.
Вы можете написать метод в своем классе, который может получить элемент из коллекции, которую он содержит.

, например

public DataType GetItemByIndex(int i)
{
}

Индексаторы в некотором смысле являются «синтаксическим сахаром», чтобы пользователи могли рассматривать экземпляр как массив или коллекцию.

1 голос
/ 20 августа 2009

Это не шаблонное свойство, это параметрическое свойство - это свойство, которое принимает аргумент параметра.

Это сводится к методу get_Item(Int32) вместо метода get_Item(), который обычно генерируется компилятором вместо свойства без параметров. Таким образом, это не открывает много возможностей для оптимизации.

...