Основы объектно-ориентированного программирования на языке 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