Объектно-ориентированное программирование на С#. Андрианова А.А - 63 стр.

UptoLike

63
// свойство для получения количества корней уравнения
public int Count
{
get { return count; }
}
5. Определение индексатора для получения корней уравнения по номеру.
Отличием индексаторов от свойств является то, что индексатор
осуществляет доступ к отдельному элементу из упорядоченного набора
значений. Упорядочение в данном случае понимается как соответствие
каждого элемента определенному набору индексов (индексов может
быть несколько и они могут задаваться с помощью различных типов
данных целые числа, строки, символы, объекты какого-то класса и
пр.).
В класс Equation введем индексатор для получения корня уравнения
по его номеру. Очевидно, что в качестве индекса здесь используется
целое число (1 или 2), соответствующее номеру корня. В случаях, когда
корня с заданным номером не существует или уравнение еще не
решено, будет сгенерирована исключительная ситуация. Данный
индексатор должен предоставлять доступ только для чтения, поскольку
корни уравнения должны вычисляться.
// индексатор для получения корня уравнения по его номеру
public double this[int i]
{
get
{
if (count == -1)
throw new Exception("Уравнение еще не решено");
if ((count == 1 || count==2) && i == 1)
return x1;
if (count == 2 && i == 2)
return x2;
throw new Exception("Уравнение не имеет
корня с номером "+i);
}
}
6. Метод распечатки корней уравнения.
Для того чтобы распечатать корни уравнения, добавим в класс
специальный метод:
// свойство для получения количества корней уравнения
public int Count
{
   get { return count; }
}

5. Определение индексатора для получения корней уравнения по номеру.
   Отличием индексаторов от свойств является то, что индексатор
   осуществляет доступ к отдельному элементу из упорядоченного набора
   значений. Упорядочение в данном случае понимается как соответствие
   каждого элемента определенному набору индексов (индексов может
   быть несколько и они могут задаваться с помощью различных типов
   данных – целые числа, строки, символы, объекты какого-то класса и
   пр.).
   В класс Equation введем индексатор для получения корня уравнения
   по его номеру. Очевидно, что в качестве индекса здесь используется
   целое число (1 или 2), соответствующее номеру корня. В случаях, когда
   корня с заданным номером не существует или уравнение еще не
   решено, будет сгенерирована исключительная ситуация. Данный
   индексатор должен предоставлять доступ только для чтения, поскольку
   корни уравнения должны вычисляться.

 // индексатор для получения корня уравнения по его номеру
 public double this[int i]
 {
    get
    {
        if (count == -1)
           throw new Exception("Уравнение еще не решено");
        if ((count == 1 || count==2) && i == 1)
           return x1;
        if (count == 2 && i == 2)
           return x2;
        throw new Exception("Уравнение не имеет
                                     корня с номером "+i);
    }
 }

6. Метод распечатки корней уравнения.
   Для того чтобы распечатать корни уравнения, добавим в класс
   специальный метод:




                                                                      63