.NET 4.x Объясните подробней пример из книги Шилдта - C#
Формулировка задачи:
Листинг программы
- using System;
- class RangeArray {
- // Закрытые данные.
- int[] а; // ссылка на базовый массив
- int lowerBound; // наименьший индекс
- int upperBound; // наибольший индекс
- // Автоматически реализуемое и доступное только для чтения свойство Length.
- public int Length { get; private set; }
- // Автоматически реализуемое и доступное только для чтения свойство Error.
- public bool Error { get; private set; }
- // Построить массив по заданному размеру.
- public RangeArray(int low, int high) {
- high++;
- if(high <= low) {
- Console.WriteLine("Неверные индексы");
- high = 1; // создать для надежности минимально допустимый массив
- low = 0;
- }
- а = new int[high - low];
- Length = high - low;
- lowerBound = low;
- upperBound = --high;
- // Это индексатор для класса RangeArray.
- public int this[int index] {
- // Это аксессор get.
- get {
- if(ok(index)) {
- Error = false;
- return a[index - lowerBound];
- } else {
- Error = true;
- return 0;
- }
- }
- // Это аксессор set.
- set {
- if(ok(index)) {
- a[index - lowerBound] = value;
- Error = false;
- }
- else Error = true;
- }
- }
- // Возвратить логическое значение true, если
- // индекс находится в установленных границах.
- private bool ok(int index) {
- if(index >= lowerBound & index <= upperBound) return true;
- return false;
- }
- }
- // Продемонстрировать применение массива с произвольно
- // задаваемыми пределами индексирования.
- class RangeArrayDemo {
- static void Main() {
- RangeArray ra = new RangeArray(-5, 5);
- RangeArray ra2 = new RangeArray(1, 10);
- RangeArray ra3 = new RangeArray(-20, -12);
- // Использовать объект ra в качестве массива.
- Console.WriteLine("Длина массива ra: " + rа.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("\n");
- // Использовать объект ra2 в качестве массива.
- Console.WriteLine("Длина массива ra2: " + 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("\n");
- // Использовать объект raЗ в качестве массива.
- Console.WriteLine("Длина массива ra3: " + ra3.Length);
- for(int i = -20; i <= -12; i++)
- ra3[i] = i;
- Console.Write("Содержимое массива ra3: ");
- for(int i = -20; i <= -12; i++)
- Console.Write(ra3[i] + " ");
- Console.WriteLine("\n");
- }
Решение задачи: «.NET 4.x Объясните подробней пример из книги Шилдта»
textual
Листинг программы
- return a[index - lowerBound];
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д