Основы объектно-ориентированного программирования на языке C# book | Page 164
7 Класи
class Program
{
static void Main(string[] args)
{
Rectangle Figure = new Rectangle();
Ifigure PointerIfigure = Figure as Ifigure;
PointerIfigure.IName = "New rectangle";
PointerIfigure.Ia = 10;
PointerIfigure.Ib = 20;
Console.WriteLine(PointerIfigure.IName + " a=" +
PointerIfigure.Ia + " b =" + PointerIfigure.Ib);
}
}
}
7.11.2 Використання iндексаторiв у iнтерфейсах
Iндексатор також може бути включений в опис iнтерфейсу. Поверне-
мось до нашого прикладу з лiфтом. Тепер будемо використовувати
iндексатори. Нехай iнтерфейс включає в себе кiлькiсть поверхiв (вла-
стивiсть) Size i iндексатор this[uint index] . Опишемо спочатку iн-
терфейс:
interface IfloorNumber
{
string this[uint index]
{
get;
set;
}
uint Size
{
get;
}
}
Тепер iндексатор необхiдно реалiзувати у конструкторi класу ElevatorWi-
thIndexer :
public ElevatorWithIndexer(uint Count)
{
// опис конструктора
floor = new string[Count];
AmmountOfFloor = Count;
}
uint IfloorNumber.Size
{
// отримання розмiру масиву
get
{
return AmmountOfFloor;
}
}
string IfloorNumber.this[uint index]
{
// реалiзацiя iндексатора
164