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

UptoLike

78
представляет собой добавление нужного метода в список вызова
событийного делегата.
Покажем использование событий на примере класса Equation.
Допустим, надо отслеживать событие изменения коэффициентов квадратного
уравнения при изменении любого коэффициента требуется решить
уравнение заново. Для этого:
в приложении объявляем делегат, определяющий вид обработчиков
события:
public delegate void EquationDelegate(Equation e);
в классе Equation объявляем событие ReplaceCoefEvent на
основе делегата EquationDelegate:
public event EquationDelegate ReplaceCoefEvent;
добавляем в класс Program метод обработки события ReSolve().
Его вид соответствует делегату EquationDelegate, объявленному
в приложении. Задача этого метода заново решить уравнение,
передаваемое в качестве параметра и распечатать новое решение:
static void ReSolve(Equation e)
{
e.Solve();
e.PrintSolution();
}
при создании объекта класса Equation (например, в функции
Main()класса Program) его событию ReplaceCoefEvent
назначается обработчик:
Equation e = new Equation(2, 5);
e.ReplaceCoefEvent += ReSolve;
в методы класса Equation, которые изменяют коэффициенты
уравнения, добавим инициацию события (вызов обработчиков этого
события через делегат):
представляет собой добавление нужного метода в список вызова
событийного делегата.
     Покажем использование событий на примере класса Equation.
Допустим, надо отслеживать событие изменения коэффициентов квадратного
уравнения – при изменении любого коэффициента требуется решить
уравнение заново. Для этого:
     в приложении объявляем делегат, определяющий вид обработчиков
      события:

     public delegate void EquationDelegate(Equation e);

      в классе Equation объявляем событие ReplaceCoefEvent на
       основе делегата EquationDelegate:

     public event EquationDelegate ReplaceCoefEvent;

      добавляем в класс Program метод обработки события ReSolve().
       Его вид соответствует делегату EquationDelegate, объявленному
       в приложении. Задача этого метода – заново решить уравнение,
       передаваемое в качестве параметра и распечатать новое решение:

     static void ReSolve(Equation e)
     {
        e.Solve();
        e.PrintSolution();
     }


      при создании объекта класса Equation (например, в функции
       Main()класса Program) его событию ReplaceCoefEvent
       назначается обработчик:

     Equation e = new Equation(2, 5);
     e.ReplaceCoefEvent += ReSolve;


      в методы класса Equation, которые изменяют коэффициенты
       уравнения, добавим инициацию события (вызов обработчиков этого
       события через делегат):




78