using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace wtsj
{
class Program
{
static void Main(string[] args)
{
Heater heater = new Heater();
Alarm alarm = new Alarm();
heater.Boiled += alarm.MakeAlert;
heater.Boiled += Display.ShowMsg;
heater.BoilWater();
Console.ReadKey();
}
}
public class Heater
{
private int temperature;
public string type = "RealFire 001";
public string area = "China Xian";
public class BoiledEventArgs : EventArgs {
public readonly int temperature;
public BoiledEventArgs(int temperature) {
this.temperature = temperature;
}
}
public delegate void BoiledEventHandler(Object sennder,BoiledEventArgs e);
public event BoiledEventHandler Boiled;
protected virtual void OnBoiled(BoiledEventArgs e) {
if (null != Boiled)
{
Boiled(this, e);
}
}
public void BoilWater() {
for (int i = 0; i <= 100; i++)
{
temperature = i;
if (temperature > 95)
{
BoiledEventArgs e = new BoiledEventArgs(temperature);
OnBoiled(e);
}
}
}
}
public class Alarm {
public void MakeAlert(Object sender,Heater.BoiledEventArgs e) {
Heater heater = (Heater)sender;
Console.WriteLine("Alarm: {0} - {1}",heater.area,heater.type);
Console.WriteLine("Alarm:滴滴滴,水已经{0}度了:",e.temperature);
Console.WriteLine();
}
}
public class Display {
public static void ShowMsg(Object sender,Heater.BoiledEventArgs e) {
Heater heater = (Heater)sender;
Console.WriteLine("Display: {0} - {1}",heater.area,heater.type);
Console.WriteLine("Display: 水快烧开了,当前温度: {0}度", e.temperature);
Console.WriteLine();
}
}
}