- •Лабораторная работа №5. «Создание приложения, использующего конструктор класса»
- •Лабораторная работа №6. «Создание приложения, использующего поля класса»
- •Сгенерируем каркас приложения.
- •Наберем код метода Main как показано в листинге 9.2:
- •Лабораторная работа №7. «Создание приложения, использующего методы класса»
- •Сгенерируем каркас приложения.
- •Наберем код метода Main как показано в листинге 11.2:
- •Наберем код метода Main как показано в листинге 10.2:
- •Лабораторная работа №8 «Создание приложения, использующего свойства класса»
- •Сгенерируем каркас приложения.
- •Лабораторная работа №9. «Создание приложения, использующего события класса»
- •Сгенерируем каркас приложения.
Лабораторная работа №9. «Создание приложения, использующего события класса»
Задание: создать приложение, использующее события класса.
Порядок выполнения работы.
Сгенерируем каркас приложения.
Создадим класс, который содержит числовое поле для суммы чисел, вводимых с клавиатуры, и генерирует событие, когда сумма превысит число 100. Программа содержит 3 класса: класс программы «Program», класс, выполняющий суммирование «CSummator» и класс суммы чисел «CSum». Код класса «CSum» показан в листинге 12.1:
Листинг 12.1. Программный код класса CSum |
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication12{ class Program{ ....................................................................... }// Конец класса Program class CSummator{ .......................................................................
}//Конец class CSummator class CSum { public event EventHandler<EventArgs> OnSum;//Объявляем событие double sum; public CSum() { sum = 0; } public double Sum { get { return sum; } set { sum = value; if(sum > 100){ OnSum(this,new EventArgs());}//Генерируем событие } } }//Конец class CSum }// Конец пространства имен приложения
|
Конец листинга 12.1 |
Наберем код класса «CSummator» как показано в листинге 12.2:
Листинг 12.2. Программный код класса «CSummator» |
class CSummator{ bool make;//Переключатель суммирования CSum obSum; public CSummator() { make = true; obSum = new CSum(); obSum.OnSum += SumCancel;//Подключаем обработчик события } void SumCancel(object Sender,EventArgs e) {// Обработчик события make = false; Console.WriteLine("Итог: {0} - значение 100 превышено!",obSum.Sum); } public void makeSum() {// Производит суммирование while (make){ Console.Write("Введите число - "); obSum.Sum += double.Parse(Console.ReadLine()); } } }//Конец class CSummator |
Конец листинга 12.2 |
Наберем код метода «Main» как показано в листинге 12.3:
Листинг 12.3. Программный код метода «Main» |
static void Main(string[] args){ Console.WriteLine("Программа прекращает суммирование, когда сумма превысит 100 !"); CSummator obSummator = new CSummator(); obSummator.makeSum();
Console.Read();// Задержка экрана } |
Конец листинга 12.3 |
После запуска, окно приложения будет иметь вид как на рисунке 12.1:
|
Рис. 12.1. Окно программы во время выполнения |
Дополнительное задание (дается в случае успешного выполнения основного задания): модифицировать приложение так, чтобы суммирование прекращалось, если модуль суммы превысит 100.
Контрольные вопросы:
Использование делегата в событиях класса
Вызов конструктора класса
Понятие поля класса
Свойства класса
Методы класса
