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