编程语言
首页 > 编程语言> > 20210430 C#课堂练习代码 热水器事件

20210430 C#课堂练习代码 热水器事件

作者:互联网

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{

    public partial class Form1 : Form
    {
        热水器 我的热水器 = new 热水器();
        警报器 我的警报器 = new 警报器();
        显示器 我的显示器 = new 显示器();
        public Form1()
        {
            InitializeComponent();

            我的热水器.水开了事件 += 我的警报器.报警;

            我的热水器.水开了事件 += 我的显示器.显示水温;

            我的热水器.温度上升事件 += 我的显示器.显示水温;

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text == "加热")
            {
                button1.Text = "暂停";
                timer1.Enabled = true;
            }
            else
            {
                button1.Text = "加热";
                timer1.Enabled = false;
            }

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            我的热水器.烧水();
            textBox1.Text = 我的警报器.警报信息;
            textBox1.Text += 我的显示器.字符串;
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            我的热水器.变冷();
            textBox1.Text = 我的警报器.警报信息;
            textBox1.Text += 我的显示器.字符串;
        }
    }
    class 热水器
    {
        
        int 温度=90;
        public delegate void 水开了委托类型(int 温度);
        public event 水开了委托类型 水开了事件;

        public delegate void 温度上升委托类型(int 温度);
        public event 温度上升委托类型 温度上升事件;

        public void 烧水()
        {


                温度++;
                if (温度上升事件 != null)
                    温度上升事件(温度);

                if (温度 > 96)
                {
                    //发布事件:水开了
                    if (水开了事件 != null)
                        水开了事件(温度);
                    System.Media.SystemSounds.Beep.Play(); 
                }

        }
        public void 变冷()
        {
            温度--;
            if (温度上升事件 != null)
                温度上升事件(温度);
        }
    }
    class 警报器
    {
        public string 警报信息;
        public void 报警(int 温度)
        {
            警报信息= "水开了,温度=" + 温度.ToString();
        }
    }
    class 显示器
    {
        public string 字符串;
        public void 显示水温(int 温度)
        {
            字符串 ="温度=" + 温度.ToString();
        }
    }
}

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

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            热水器 我的热水器 = new 热水器();
            警报器 我的警报器 = new 警报器();
            我的热水器.水开了事件 += 我的警报器.报警;

            我的热水器.水开了事件 += 显示器.显示水温;

            我的热水器.温度上升事件 += 显示器.显示水温;
            我的热水器.烧水();
            Console.ReadLine();
        }
    }
    
    class 热水器
    {
        int 温度;
        public delegate void 水开了委托类型(int 温度);
        public event 水开了委托类型 水开了事件;

        public delegate void 温度上升委托类型(int 温度);
        public event 温度上升委托类型 温度上升事件;

        public void 烧水(){

            for (int k = 0; k < 100; k++)
            {
                for (int i = 0; i < 100000; i++) ;
                温度++;
                if (温度上升事件 != null)
                    温度上升事件(温度);

                if(温度>96){
                    //发布事件:水开了
                    if(水开了事件!=null)
                        水开了事件(温度);
                }
            }

        }
    }
    class 警报器
    {
        public void 报警(int 温度){
            Console.WriteLine("水开了,温度=" + 温度.ToString());
        }
    }
    class 显示器
    {
        public static void 显示水温(int 温度){
            Console.WriteLine("温度=" + 温度.ToString());
        }
    }
}

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

namespace 事件
{
    class Program
    {
        static void Main(string[] args)
        {
            热水器类 热水器 = new 热水器类();
            警报器类 警报器 = new 警报器类();
            热水器.水开了事件 += 警报器.发警告;
            热水器.水开了事件 += 显示类.显示信息静态方法;
            热水器.烧水();
            Console.ReadKey();
        }
    }

    public class 热水器类
    {
        private int 温度;
        public delegate void 开水委托(int param);
        public event 开水委托 水开了事件;
        public void 烧水()
        {
            for (int i = 0; i <= 96; i++)
            {
                温度 = i;
                if (温度 > 96)
                {
                    if (水开了事件 != null)
                    {
                        水开了事件(温度);
                    }

                }
            }
        }
    }
    public class 警报器类
    {
        public void 发警告(int 温度值)
        {
            Console.WriteLine("\a\a\a水要开了,温度{0}", 温度值);
            Console.ReadKey();
        }
    }

    public class 显示类
    {
        public static void 显示信息静态方法(int param)
        {
            Console.WriteLine("显示,水要开了,温度{0}", param);
        }
    }
}
`

标签:课堂练习,C#,void,System,热水器,20210430,public,水开,温度
来源: https://www.cnblogs.com/iamrich/p/14975077.html