Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- /*
- Вариант: 3
- Студент: Удачин Даниил Андреевич
- Группа: БПИ191
- Дата: 19.02.2020
- */
- namespace Nikita_luchshiy_malchik
- {
- class MobilePhone : EventArgs
- {
- public string Name { get; }
- public double BatteryLife { get; }
- public bool HasFaceID { get; }
- public MobilePhone(string name, double batteryLife, bool hasFaceID)
- {
- Name = name;
- BatteryLife = batteryLife;
- HasFaceID = hasFaceID;
- }
- }
- class PhoneMaker
- {
- public event EventHandler<MobilePhone> PhoneCreated;
- public static Random rnd = new Random();
- public void NewPhone()
- {
- string name = GenerateName(7);
- double batteryLife = rnd.Next(2500, 4000) + rnd.NextDouble();
- bool hasFaceID = rnd.Next(0, 100) < 80 ? true : false;
- PhoneCreated?.Invoke(this, new MobilePhone(name, batteryLife, hasFaceID));
- }
- static string GenerateName(int length)
- {
- string name = "";
- for (int i = 0; i < length; i++)
- {
- name += (char)rnd.Next(97, 123);
- }
- return name;
- }
- }
- class News
- {
- public void InfoHandler(object s, EventArgs args)
- {
- MobilePhone phone = args as MobilePhone;
- // MobilePhone phone = (MobilePhone)args;
- Console.WriteLine("Имя телефона: " + phone.Name);
- Console.WriteLine("Имеет ли FaceID: " + phone.HasFaceID);
- }
- }
- class PeopleWhoNeedBattery
- {
- public MobilePhone maxPhone = new MobilePhone("test", 0, false);
- public void BatterySearcher(object s, EventArgs args)
- {
- MobilePhone phone = args as MobilePhone;
- // MobilePhone phone = (MobilePhone)args;
- if (maxPhone.BatteryLife < phone.BatteryLife)
- {
- maxPhone = phone;
- }
- }
- }
- class Program
- {
- static void Main()
- {
- do {
- // Создаём экземпляры
- PhoneMaker pMaker = new PhoneMaker();
- News news = new News();
- PeopleWhoNeedBattery maxBattery = new PeopleWhoNeedBattery();
- // Подписываем
- pMaker.PhoneCreated += news.InfoHandler;
- pMaker.PhoneCreated += maxBattery.BatterySearcher;
- // Вызываем 5 раз
- for (int i = 0; i < 5; i++)
- {
- pMaker.NewPhone();
- }
- Console.WriteLine();
- // Выдаём инйфу о телефоне с максимальным размером акума
- Console.WriteLine($"Максимальный размер акума телефона: " +
- $"{maxBattery.maxPhone.BatteryLife}\n" +
- $"Имя телефона: {maxBattery.maxPhone.Name}\n" +
- $"Имеет ли FaceID: {maxBattery.maxPhone.HasFaceID}\n");
- Console.WriteLine("Программа завершила работу. Для выхода нажмите Esc.");
- } while (Console.ReadKey().Key != ConsoleKey.Escape);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement