Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тюмгу / Лекции КБ ИБАС 1 курс 2 семестр / лекция10 Безопасность 2018.pptx
Скачиваний:
12
Добавлен:
08.12.2019
Размер:
149.27 Кб
Скачать

Пример 2. Индексатор только для чтения, несвязанный с массивом,

атолько вычисляющий степени числа 2 (до 10-ой). class Power2

{

public int this [int index]

{

get

{

if (index >= 0 & index < 10)

{

return pwr(index);

}

else

{

return -1

}

}

}

32

int pwr(int p)

{

int result = 1;

for (int i=0; i<p; i++) result*= 2;

return result;

}

}

class TestPower

{

public static void Main ()

{

Power2 obj = new Power2( );

for (int i=0; i<6; i++) Console.Write (obj[i] + " ");

Console.WriteLine ( );

Console.WriteLine (obj[-1] +" "+ obj[15]);

}

}

33

Программа напечатает:

1 2 4 8 16 32

-1 -1

Примечание

Допускается перегрузка индексаторов.

Для этого требуется обеспечить различные наборы формальных параметров.

Например, для одного и того же класса можно создать индексаторы разных размерностей или индексаторы, в которых есть только один формальный параметр, но

в одном случае он имеет тип int,

а в другом - string.

34

Вложенные типы

Классы могут содержать определения других типов: классов, структур, перечислений и интерфейсов, которые называются вложенными типами.

Определение вложенного класса :

access class class_name

{

Данные-члены

Функции-члены

access class class_name

{

Данные-члены

Функции-члены

Вложенные типы

}

}

Преимущества от использования вложенных классов:

они позволяют более эффективно организовать код - легче поддерживать (и использовать) один внешний класс с набором вложенных, чем несколько отдельных классов.

35