static void Main(string[] args) { //coздать объект класса Thermostat Thermostat thermostat = new Thermostat(); //coздать объект класса Heater установив начальную температуру равную 30 градусов //coздать объект класса Cooler установив начальную температуру равную 40 градусов //объект класса Heater - подписаться на событие изменения температуры класса Thermostat //объект класса Cooler - подписаться на событие изменения температуры класса Thermostat //эмуляция изменения температуры объекта класса Thermostat //объект класса Cooler - отписаться от события изменения температуры класса Thermostat //эмуляция изменения температуры объекта класса Thermostat на 45 градусов Type type = thermostat.GetType(); foreach (var t in type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)) { Console.WriteLine(t.Name); } }
static void Main(string[] args) { Thermostat thermostat = new Thermostat(); Heater heater = new Heater(30); Cooler cooler = new Cooler(40); thermostat.Add_TemperatureChanged(heater.OnTemperatureChanged); thermostat.Add_TemperatureChanged(cooler.Update); thermostat.EmulateTemperatureChange(); thermostat.Remove_TemperatureChanged(cooler.Update); thermostat.EmulateTemperatureChange(); Type type = thermostat.GetType(); foreach (var t in type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)) { Console.WriteLine(t.Name); } Console.ReadKey(); }