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