ВУЗ:
Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 76
- 77
- 78
- 79
- 80
- …
- следующая ›
- последняя »
