Основы объектно-ориентированного программирования на языке C# book | Page 131

7.5 Iндексатори Аналогiчним чином визначаються багатовимiрнi iндексатори: public string this[int index1, int index2] { // опис iндексатору get { // код для одержання елементу } set { // код для задання елементу } } В якостi iндексiв не обов’язково використовувати лише цiлi числа. Можна також використовувати рядки або символи. Також слiд за- уважитиЦе означає, що iндексатори можуть бути перевантаженi в окремому класi аба структурi. Тобто, якщо є необхiднiсть зверта- тись з використанням числового iндексу або символьного значення, можна визначити декiлько iндексаторiв.Наприклад, описати ще один iндексатор public string this[char index] { // опис iндексатора get { if (index >= ’0’ && index < Size) return floor[index]; // отримання елементу else return "Wrong number of floor"; } set { floor[index] = value; // встановлення значення } } та використовувати для iндексацiı̈ символи: class Program { static void Main(string[] args) { ElevatorWithIndexer MyElevator = new ElevatorWithIndexer(’3’); MyElevator[’0’] = "first"; MyElevator[’1’] = "second"; MyElevator[’2’] = "third"; for (char i = ’0’; i < MyElevator.Size; i++) { Console.WriteLine("Number of floor is: {0}", MyElevator[i]); } Console.ReadKey(); } } При описi iндексаторiв можна використовувати ключове слово param : 131