事件 小案列


             //作业二:热水器
            //* 烧水器,显示器,警报器
            //* 1.烧水器:负责烧水,温度会发生改变
            //* 2.随着温度发生改变,显示器显示的内容就发生改变;
            //*3.当温度到达100时,发出警报声,停止烧水;
            //*

using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace 事件
{
    class Program
    {
        public static void Main()
        {
            FireWater a = new FireWater();
            Displayer b = new Displayer();
            Alert c = new Alert();
            a.StartBoil();
            Console.ReadKey();
        }
    }


    class FireWater
    {
        public delegate void FireHandler(int h);
        public static FireHandler ReflushEvent;
        public static FireHandler AlertEvent;
        int h = 0;//温度
        public void StartBoil()
        {
            //启动烧水
            Console.WriteLine("开始烧水");
            while (true)
            {
                h++;
                //通知显示器更新显示
                if (ReflushEvent != null)
                {
                    ReflushEvent(h);
                }
                if (h >= 100)
                {
                    //通过警报器发出警报停止烧水
                    if (AlertEvent != null)
                    {
                        AlertEvent(h);
                    }
                    break;
                }
            }
        }
    }
    class Displayer
    {
        public Displayer()
        {
            FireWater.ReflushEvent += OnReflush;
        }
        public void OnReflush(int h)
        {
            Console.WriteLine("目前温度是:{0}", h);
        }
    }
    class Alert
    {
        public Alert() { FireWater.AlertEvent += OnAlert; }
        public void OnAlert(int h)
        {
            Console.WriteLine("!!!!水烧开了温度为!!!!");
        }
    }


}

猜你喜欢

转载自blog.csdn.net/qq_36499416/article/details/81028360