Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 26 стр.

UptoLike

25
Рис. 2.1. Демонстрация одной итерации метода хорд.
При решении этой задачи будем использовать делегаты. Напомним, что
делегаты это классы, которые предназначены для хранения информации о
каких-либо методах с одинаковым прототипом. Объект делегата становится
псевдонимом хранимого метода (ссылкой на него). Как и любой объект,
делегат можно передавать в функцию как параметр, он может являться полем
класса или возвращаемым значением функции. Делегат также можно
использовать для вызова хранимого метода в тот момент, когда это станет
необходимо.
Создадим класс Solver, который будет решать уравнение. Пусть этот
класс будет содержать только один открытый статический метод
RootEquation() для решения уравнения. Остальные методы методы
определения точки-середины отрезка (GetX1()), точки пересечения хорды
(GetX2()), и точки пересечения касательной с осью абсцисс (GetX3()),
будут закрытыми, т.е. будут играть служебную роль. Выбор метода решения
будет осуществляться случайным образом в статическом конструкторе.
Такая структура класса предусматривает использование делегатов в
двух ситуациях:
1) Делегаты часто используются в качестве параметров других
методов. В нашем случае уравнение будет задано посредством определения
функции f(x). Для хранения информации о том, как ее вычислять, создадим
делегат:
                Рис. 2.1. Демонстрация одной итерации метода хорд.

      При решении этой задачи будем использовать делегаты. Напомним, что
делегаты – это классы, которые предназначены для хранения информации о
каких-либо методах с одинаковым прототипом. Объект делегата становится
псевдонимом хранимого метода (ссылкой на него). Как и любой объект,
делегат можно передавать в функцию как параметр, он может являться полем
класса или возвращаемым значением функции. Делегат также можно
использовать для вызова хранимого метода в тот момент, когда это станет
необходимо.
      Создадим класс Solver, который будет решать уравнение. Пусть этот
класс будет содержать только один открытый статический метод
RootEquation() для решения уравнения. Остальные методы – методы
определения точки-середины отрезка (GetX1()), точки пересечения хорды
(GetX2()), и точки пересечения касательной с осью абсцисс (GetX3()),
будут закрытыми, т.е. будут играть служебную роль. Выбор метода решения
будет осуществляться случайным образом в статическом конструкторе.
      Такая структура класса предусматривает использование делегатов в
двух ситуациях:
      1) Делегаты часто используются в качестве параметров других
методов. В нашем случае уравнение будет задано посредством определения
функции f(x). Для хранения информации о том, как ее вычислять, создадим
делегат:


25