Latest web development tutorials

C # индексатор (индексатор)

Indexer (индексатор) позволяет объекту как массив может быть проиндексирован.При определении индексатор для класса, класс действует будет каквиртуальный массив (виртуальный массив) то же самое.Вы можете использовать оператор доступа к массиву ([]), чтобы получить доступ к экземпляру класса.

грамматика

Размерный индексирование следующий синтаксис:

элемент типа этого [INT индекс] 
{
   // Получить аксессор Get 
   {
      // Возвращает значение указанного индекса}

   // Установить аксессор комплект 
   {
      // Установить значение указанного индекса}
}

Indexer (Индексатор) использует

Заявление действует аналогично свойству индексатора (свойство). Как собственности (имущества), которые можно использовать для определениянабора индексов и получитьаксессор. Однако свойство возвращается или установить конкретный элемент данных, и возвращает индекс или задает экземпляр объекта на определенное значение. Другими словами, это данные экземпляра разделены на более мелкие части, и каждая часть индекса, получить или установить каждую секцию.

Определение атрибута (имущества) включает предоставление имен свойств. Когда индекс не определен с именем, но сэтим ключом, который указывает на экземпляр объекта.Следующий пример иллюстрирует эту концепцию:

с помощью системы;
Пространство имен IndexerApplication
{
   класса IndexedNames
   {
      частная строка [] = списке имен новая строка [размер];
      статический размер общественного INT = 10;
      общественные IndexedNames ()
      {
         для (INT I = 0; я <размер; я ++)
         списке имен [я] = "NA";
      }
      публичная строка этого [INT индекс]
      {
         получить
         {
            Строка TMP;

            если (индекс> = 0 && индекс <= размер-1)
            {
               TMP = списке имен [индекс];
            }
            еще
            {
               TMP = "";
            }

            возврат (TMP);
         }
         комплект
         {
            если (индекс> = 0 && индекс <= размер-1)
            {
               списке имен [индекс] = значение;
            }
         }
      }

      статической силы основных (String [] агдз)
      {
         IndexedNames имена = новый IndexedNames ();
         имена [0] = "Zara";
         имена [1] = "Риз";
         имена [2] = "Нуха";
         имена [3] = "Асиф";
         имена [4] = "Давиндер";
         имена [5] = "Сунил";
         имена [6] = "Rubic";
         для (INT I = 0; я <IndexedNames.size; я ++)
         {
            Console.WriteLine (имена [я]);
         }
         Console.ReadKey ();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

Zara
Риз
Нуха
Асиф
Давиндер
Сунил
Rubic
Nanana

Перегруженные индексатор (индексатор)

Indexer (индексатор) может быть перегружен. Когда декларация индексатор может быть также снабжен множеством параметров, и каждый параметр может быть различных типов. Там нет необходимости для индекса должно быть целым числом. C # позволяет индексаторы могут быть и другие типы, такие как тип строки.

Следующий пример демонстрирует перегруженный индексатор:

с помощью системы;
Пространство имен IndexerApplication
{
   класса IndexedNames
   {
      частная строка [] = списке имен новая строка [размер];
      статический размер общественного INT = 10;
      общественные IndexedNames ()
      {
         для (INT I = 0; я <размер; я ++)
         {
          списке имен [я] = "NA";
         }
      }
      публичная строка этого [INT индекс]
      {
         получить
         {
            Строка TMP;

            если (индекс> = 0 && индекс <= размер-1)
            {
               TMP = списке имен [индекс];
            }
            еще
            {
               TMP = "";
            }

            возврат (TMP);
         }
         комплект
         {
            если (индекс> = 0 && индекс <= размер-1)
            {
               списке имен [индекс] = значение;
            }
         }
      }
      общественного INT это [имя строки]
      {
         получить
         {
            INT индекс = 0;
            в то время как (индекс <размер)
            {
               если (списке имен [индекс] == имя)
               {
                возвращать индекс;
               }
               Индекс ++;
            }
            возвращать индекс;
         }

      }

      статической силы основных (String [] агдз)
      {
         IndexedNames имена = новый IndexedNames ();
         имена [0] = "Zara";
         имена [1] = "Риз";
         имена [2] = "Нуха";
         имена [3] = "Асиф";
         имена [4] = "Давиндер";
         имена [5] = "Сунил";
         имена [6] = "Rubic";
         // Используйте первый параметр с Int индексатор для (INT I = 0; я <IndexedNames.size; я ++)
         {
            Console.WriteLine (имена [я]);
         }
         // Используйте второй индексатор с параметром строка Console.WriteLine (имена [ "Нуха"]);
         Console.ReadKey ();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

Zara
Риз
Нуха
Асиф
Давиндер
Сунил
Rubic
Nanana
2