Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Свойства методы поля конструктор.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
168 Кб
Скачать
☆

Лабораторная работа №9. «Создание приложения, использующего события класса»

Задание: создать приложение, использующее события класса.

Порядок выполнения работы.

  1. Сгенерируем каркас приложения.

  2. Создадим класс, который содержит числовое поле для суммы чисел, вводимых с клавиатуры, и генерирует событие, когда сумма превысит число 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

  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

  1. Наберем код метода «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.

Контрольные вопросы:

  1. Использование делегата в событиях класса

  2. Вызов конструктора класса

  3. Понятие поля класса

  4. Свойства класса

  5. Методы класса