Создание и обработка событий - C#
Формулировка задачи:
Всем добрый день. К данной программе нужно создать какое либо событие.
Продемонстрируем обработку этого события, объявив в форме один объект класса Cat и
назначив ему обработчик в событии form1_Load. Увеличение количества пойманных мышей
будем производить при нажатии кнопки button1.
буду очень рад любой помощи!!!! Спасибо!!!!
Тема:
Создание и обработка событий.Цель работы:
Закрепить навыки работы с типами делегатов, научиться разрабатывать компоненты-источники событий, а также использовать эти компоненты в программах- клиентах. Естьпример
: Создадим класс Cat с событием, возникающим при каждом десятке пойманных мышей:// Тип делегата для события public delegate void MouseCaughtEvent(object sender, int miceCaughtCount); public class Cat { private int miceCaughtCount; // событие, возникающее при каждом очередном десятке пойманных мышей public event MouseCaughtEvent OnEachTenCaught; // Поймать мышь public void CatchAMouse() { miceCaughtCount++; if (miceCaughtCount % 10 == 0) { // если количество кратно 10 if (OnEachTenCaught != null) { // и если есть обработчик, OnEachTenCaught(this,miceCaughtCount); // то вызываем событие } } } }
public class Form1: System.Windows.Forms.Form { private Cat cat1 = new Cat(); // Наша кошка private Button button1; // Кнопка для ловли мышей // Назначение обработчика private void Form1_Load(object sender, EventArgs e) { cat1.OnEachTenCaught += new MouseCaughtEvent(cat1_OnEachTenCaught); } // Сам обработчик private void cat1_OnEachTenCaught(object sender, int miceCaughtCount) { MessageBox.Show(sender.ToString() + " – поймали еще 10 мышей!"); } // Нажатие на кнопку button1 private void button1_Click(object sender, EventArgs e) { cat1.CatchAMouse(); // Поймать одну мышь. // Каждые 10 мышей будет срабатывать обработчик } }
Моя программа, в которой нужно добавить событие.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ВтораяЛабараторка { class Liquid // Основной класс { public string name; // Название алкоголя public void NameShow() // Вывод названия алкоголя { Console.WriteLine("Название алкоголя: " + name); } } class Alcohol : Liquid // Наследуемый класс { public string vol; // Крепость алкоголя. public Alcohol(string vol, string name) { this.name = name; this.vol = vol; // Приравнивание } public void VolShow() // Вывод крепости алкоголя после названия { Console.WriteLine("Крепость Алкоголя: " + vol); } } class Program { static void Main() // Добавляем несколько напитков и записываем их параметры для вывода { Alcohol drink = new Alcohol("",""); drink.name = "Henessy Black"; drink.vol = "40%"; drink.NameShow(); // Выводим название напитка drink.VolShow(); // Выводим крепость напитка Console.WriteLine("-----------------"); Alcohol drink2 = new Alcohol("", ""); drink.name = "Hektors Sweet"; drink.vol = "32%"; drink.NameShow(); // Выводим название напитка drink.VolShow(); // Выводим крепость напитка Console.WriteLine("-----------------"); Alcohol drink3 = new Alcohol("", ""); drink.name = "Aldaris Alus"; drink.vol = "4.5%"; drink.NameShow(); // Выводим название напитка drink.VolShow(); // Выводим крепость напитка Console.WriteLine("-----------------"); Alcohol drink4 = new Alcohol("", ""); drink.name = "Cesu Gold 5"; drink.vol = "3.0%"; drink.NameShow(); // Выводим название напитка drink.VolShow(); // Выводим крепость напитка Console.WriteLine("-----------------"); Alcohol drink5 = new Alcohol("", ""); drink.name = "Vodka Nemiroff"; drink.vol = "40%"; drink.NameShow(); // Выводим название напитка drink.VolShow(); // Выводим крепость напитка Console.ReadLine(); } } }
Решение задачи: «Создание и обработка событий»
textual
Листинг программы
public partial class Form1 : Form { public Form1() { InitializeComponent(); drink.name = "Vodka Nemiroff"; drink.vol = 40; drink.minVol = 15; drink.BarmanLayOffEvent += new BarmanLayOffDel(drink_BarmanLayOffHandler); } Alcohol drink = new Alcohol(); // Тип делегата для события public delegate void BarmanLayOffDel(object sender); class Liquid // Основной класс { public string name; // Название } class Alcohol : Liquid // Наследуемый класс { public float vol; // Крепость алкоголя. public float minVol; // Мин Крепость алкоголя. public event BarmanLayOffDel BarmanLayOffEvent; public Alcohol() { this.name = ""; this.vol = 0.0f; this.minVol = 0.0f; } public Alcohol(string name, float vol, float minVol) { this.name = name; this.vol = vol; this.minVol = minVol; } public override string ToString() { return "Название: " + name + "\nКрепость Алкоголя: " + vol + "\nМинимальная крепость Алкоголя: " + minVol; } // Бармен разбавляет алкоголь public void WaterDown() { this.vol-= 5.0f; // если разбавлять дальше некуда if (this.vol <= this.minVol) { if (BarmanLayOffEvent != null) { // то вызываем событие. бармена поймали и уволили BarmanLayOffEvent(this); } } } } // Сам обработчик private void drink_BarmanLayOffHandler(object sender) { MessageBox.Show("Бармен был уволен " + sender.ToString()); (sender as Alcohol).vol = 40; // замена испорченного напитка } private void button1_Click(object sender, EventArgs e) { drink.WaterDown(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д