From d46d59c3df67ad223d93e113ae9a668b757ce722 Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 1 Mar 2019 14:13:08 +0300 Subject: [PATCH 1/3] Somebody once told me --- Product.cs | 6 ++++++ ProductEventArgs.cs | 18 ++++++++++++++++-- Program.cs | 33 ++++++++++++++++++++++++++++++--- 3 files changed, 52 insertions(+), 5 deletions(-) diff --git a/Product.cs b/Product.cs index f68c8c9..bd015c7 100644 --- a/Product.cs +++ b/Product.cs @@ -32,11 +32,13 @@ public string Name get { return name; } set { + string oldName = name; name = value; /* * TODO #4 Инициировать уведомление об * изменении наименования */ + OnNameChanged?.Invoke(this, new ProductEventArgs(oldName)); } } /// @@ -47,11 +49,13 @@ public decimal Price get { return price; } set { + decimal oldPrice = price; price = value; /* * TODO #5 Инициировать уведомление об * изменении стоимости */ + OnPriceChanged?.Invoke(this, new ProductEventArgs(oldPrice)); } } @@ -62,6 +66,8 @@ public decimal Price /* * TODO #3 Добавить определение событий */ + public static event EventHandler OnNameChanged; + public static event EventHandler OnPriceChanged; #endregion diff --git a/ProductEventArgs.cs b/ProductEventArgs.cs index a79a6d6..499df68 100644 --- a/ProductEventArgs.cs +++ b/ProductEventArgs.cs @@ -1,4 +1,6 @@ -namespace Events +using System; + +namespace Events { /// /// Класс, который служит для передачи аргументов @@ -8,11 +10,23 @@ /* * TODO #1 Закончить определение класса ProductEventArgs */ - class ProductEventArgs + class ProductEventArgs : EventArgs { /* * TODO #2 Добавить определение необходимых компонент * класса ProductEventArgs */ + + public string OldName; //{get; private set;} + public decimal OldPrice; //{get; private set;} + + public ProductEventArgs(string oldName) + { + this.OldName = oldName; + } + public ProductEventArgs(decimal oldPrice) + { + this.OldPrice = oldPrice; + } } } diff --git a/Program.cs b/Program.cs index b9247f7..16d6d39 100644 --- a/Program.cs +++ b/Program.cs @@ -1,4 +1,7 @@ -namespace Events +using System; +using System.IO; + +namespace Events { class Program { @@ -17,21 +20,45 @@ internal Product Product static void Main(string[] args) { - Product product = new Product("Some product name", 0); - + var product = new Product("Some product name", 0); + /* * TODO #6 Назначить обработчики событий в текущем контексте */ + Product.OnNameChanged += OnProductNameChanged; + Product.OnPriceChanged += OnProductPriceChanged; /* * TODO #7 Выполнить с экземпляром класса Product действия, * приводящие к возникновению описанных Вами событий */ + product.Name = "Plumbus"; + product.Price = 911; + + product.Name = "Baldezh"; + product.Price = 1729; + product.Price = 2019; } /* * TODO #8 Добавить определение обработчиков событий */ + static void OnProductNameChanged(object sender, ProductEventArgs e) + { + var product = sender as Product; + Console.WriteLine( + $"The product \"{e.OldName}\"" + + $"is now called \"{product.Name}\"." + ); + } + static void OnProductPriceChanged(object sender, ProductEventArgs e) + { + var product = sender as Product; + Console.WriteLine( + $"The \"{product.Name}\" product's price has changed" + + $"from {e.OldPrice}$ to {product.Price}$." + ); + } } } From e80335a9717684ded44da5019e0e12c4b2989c45 Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 1 Mar 2019 17:48:52 +0300 Subject: [PATCH 2/3] The world is gonna roll me --- Product.cs | 2 +- ProductEventArgs.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Product.cs b/Product.cs index bd015c7..eef09c6 100644 --- a/Product.cs +++ b/Product.cs @@ -73,7 +73,7 @@ public decimal Price public Product(string name, decimal price) { - Name = name; + Name = name; Price = price; } diff --git a/ProductEventArgs.cs b/ProductEventArgs.cs index 499df68..b5f912c 100644 --- a/ProductEventArgs.cs +++ b/ProductEventArgs.cs @@ -17,8 +17,8 @@ class ProductEventArgs : EventArgs * класса ProductEventArgs */ - public string OldName; //{get; private set;} - public decimal OldPrice; //{get; private set;} + public string OldName { get; private set; } + public decimal OldPrice { get; private set; } public ProductEventArgs(string oldName) { From e257df899c10fd76c3e1c0f036cb315bf8d5f569 Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 1 Mar 2019 17:53:05 +0300 Subject: [PATCH 3/3] I ain't the sharpest tool in the shed --- Program.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Program.cs b/Program.cs index 16d6d39..a328b99 100644 --- a/Program.cs +++ b/Program.cs @@ -47,7 +47,7 @@ static void OnProductNameChanged(object sender, ProductEventArgs e) { var product = sender as Product; Console.WriteLine( - $"The product \"{e.OldName}\"" + $"The product \"{e.OldName}\" " + $"is now called \"{product.Name}\"." ); } @@ -55,7 +55,7 @@ static void OnProductPriceChanged(object sender, ProductEventArgs e) { var product = sender as Product; Console.WriteLine( - $"The \"{product.Name}\" product's price has changed" + $"The \"{product.Name}\" product's price has changed " + $"from {e.OldPrice}$ to {product.Price}$." ); }