using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics; namespace ConsoleApp392 { class Program { static void Main(string[] args) { Adult adult = new Adult(18); adult.AdultEvent += Adult_AdultEvent; adult.Age = 20; Console.ReadLine(); } private static void Adult_AdultEvent(object sender, AdultArgs e) { string msg = string.Empty; int newAge = e.AdultAge; if(newAge>=18) { msg = "Adult"; } else { msg = "Adolescent"; } Console.WriteLine($"The newly updated age is {newAge} and it's {msg} "); } } public class AdultArgs { public int AdultAge { get; set; } public AdultArgs(int age) { AdultAge = age; } } public class Adult { public event EventHandler<AdultArgs> AdultEvent; public Adult(int adultAge) { Age = adultAge; } private int ageValue; public int Age { get { return ageValue; } set { if(value!=ageValue) { ageValue = value; RaisePropertyChanged(value); } } } private void RaisePropertyChanged(int value) { AdultEvent?.Invoke(this, new AdultArgs(value)); } } }