int[] a; // ссылка на базовый массив int lowerBound; // наименьший индекс int upperBound; // наибольший индекс

// Автоматически реализуемое и доступное только для чтения свойство Length, public int Length { get; private set; }

// Построить массив по заданному размеру public RangeArray(int low, int high) { high+ +;

if(high <= low) {

throw new RangeArrayException('Нижний индекс не меньше верхнего.');

}

а = new int[high - low];

Length = high - low;

lowerBound = low; upperBound = —high;

}

// Это индексатор для класса RangeArray. public int this[int index] {

// Это аксессор get. get {

if(ok(index))    {

return a[index - lowerBound];

} else {

throw new RangeArrayException('Ошибка нарушения границ.');

}

}

// Это аксессор set. set {

if(ok(index))    {

a[index - lowerBound] = value;

}

else throw new RangeArrayException('Ошибка нарушения границ.'); }

}

// Возвратить логическое значение true, если // индекс находится в установленных границах, private bool ok(int index) {

if(index >= lowerBound & index <= upperBound) return true; return false;

}

}

// Продемонстрировать применение массива с произвольно // задаваемыми пределами индексирования, class RangeArrayDemo { static void Main() { try {

RangeArray ra = new RangeArray(-5, 5);

RangeArray ra2 = new RangeArray(1, 10);

i

// Использовать объект га в качестве массива.

Console.WriteLine('Длина массива га: и- + га.Length); for(int i = -5; i <= 5; i++) ra[i] = i;

Console.Write('Содержимое массива ra: '); for (int i = -5; i <= 5; i++)

Console.Write(ra[i] + ' ');

Console.WriteLine(' ');

// Использовать объект ra2 в качестве массива.

Console.WriteLine('Длина массива га2: ' + ra2.Length); for (int i = 1; i <= 10; i++) ra2[i] = i;

Console.Write('Длина массива ra2: '); for (int i = 1; i <= 10; i++)

Console.Write(ra2[i] + ' ');

Console.WriteLine(' ') ;

} catch (RangeArrayException exc) {

Console.WriteLine(exc);

}

// А теперь продемонстрировать обработку некоторых ошибок.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату