From 00867896dd2ac990aa13685cfaaaa18785d4e397 Mon Sep 17 00:00:00 2001 From: Maksim Date: Tue, 2 Dec 2025 00:10:29 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kt8888/Program.cs | 60 ++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/kt8888/Program.cs b/kt8888/Program.cs index dce78d0..47335f7 100644 --- a/kt8888/Program.cs +++ b/kt8888/Program.cs @@ -1,46 +1,38 @@ using System; -using System.IO; namespace kt8888 { - public class BankAccount + public class Timer { - private decimal balance; + private System.Timers.Timer _timer; - public decimal Balance - { - get { return balance; } - private set - { - balance = value; - BalanceChanged?.Invoke(balance); - } - } + public event EventHandler Tick; - public event Action BalanceChanged; - - public void Deposit(decimal amount) + public Timer() { - Balance += amount; + _timer = new System.Timers.Timer(1000); + _timer.Elapsed += (s, e) => Tick?.Invoke(this, EventArgs.Empty); } - public void Withdraw(decimal amount) + public void Start() => _timer.Start(); + public void Stop() => _timer.Stop(); + } + + public class Clock + { + public Clock(Timer timer) { - if (amount <= Balance) - { - Balance -= amount; - } + timer.Tick += (s, e) => Console.WriteLine($"time: {DateTime.Now:T}"); } } - public class Logger + public class Counter { - public Logger(BankAccount account) + private int _count = 0; + + public Counter(Timer timer) { - account.BalanceChanged += (balance) => - { - File.AppendAllText("log.txt", $"balance {balance}\n"); - }; + timer.Tick += (s, e) => Console.WriteLine($"count: {++_count}"); } } @@ -48,15 +40,15 @@ class Program { static void Main() { - BankAccount account1 = new BankAccount(); - Logger logger1 = new Logger(account1); - - account1.Deposit(1000); - account1.Withdraw(500); - account1.Deposit(300); + Timer timer1 = new Timer(); + Clock clock1 = new Clock(timer1); + Counter counter1 = new Counter(timer1); - Console.WriteLine("final balance " + account1.Balance); + timer1.Start(); + Console.WriteLine("timer started press key for stop"); Console.ReadLine(); + timer1.Stop(); + Console.WriteLine("timer stopped"); } } } \ No newline at end of file From d85de529a2eb63d491a615cbf1c13b273bf93277 Mon Sep 17 00:00:00 2001 From: SLAMPER <50207606+SLAMPER@users.noreply.github.com> Date: Tue, 2 Dec 2025 14:51:36 +0300 Subject: [PATCH 2/2] Create README.md --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f1e6f80 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +Задание 1 + +Задание: Напишите класс Timer, который имеет событие типа EventHandler с именем Tick, которое возникает каждую секунду. Затем напишите класс Clock, который подписывается на это событие и выводит на консоль текущее время при каждом его возникновении. Затем напишите класс Counter, который также подписывается на это событие и увеличивает свое значение на единицу при каждом его возникновении. Продемонстрируйте работу этих классов в методе Main + +Результат: + +изображение