110,534
社区成员
发帖
与我相关
我的任务
分享
namespace mydelegate
{
class Program
{
public static int temperature = 38;
public static int custemp = 25;
public static bool isStart = false;
static void Main(string[] args)
{
AirConditioner airconditioner = new AirConditioner();
Displayer displayer = new Displayer();
Alarmer alarmer = new Alarmer();
Uptemper uptemper = new Uptemper();
Timer mytimer = new Timer(2000);
uptemper.OverLoadTemperatureEvent += airconditioner.Start;
uptemper.OverLoadTemperatureEvent += displayer.Display;
uptemper.OverLoadTemperatureEvent += alarmer.Alarm;
mytimer.Elapsed += new ElapsedEventHandler(uptemper.Uptemp);
mytimer.Start();
Console.ReadKey();
}
}
//定义模拟升温类
public class Uptemper
{
public int temperature;
public int custemp;
......
......若干代码
......
public void Uptemp(object sender,ElapsedEventArgs e)
{
custemp = Program.custemp;
temperature = Program.temperature;
//用这二句做累加,成功!
//temperature = temperature + 1;
//Program.temperature = temperature ;
//用这句做累加,也成功
//Program.temperature = ++ temperature
//用这句做累加,就失败,Program.temperature里的值一直都加不上去。
Program.temperature = temperature + 1; //自然升温
//Console.WriteLine("随机数为{0} 加后结果{1}", x, Program.temperature);
OverLoadTemperatureEvent(temperature, custemp);
......
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Timers;
namespace mydelegate
{
class Program
{
public static int temperature = 38; //默认当前温度。
public static int custemp = 25; //设定的空调停机温度。
public static bool isStart = false; //存放空调的工作状态。
static void Main(string[] args)
{
AirConditioner airconditioner = new AirConditioner();
Displayer displayer = new Displayer();
Alarmer alarmer = new Alarmer();
Uptemper uptemper = new Uptemper();
Timer mytimer = new Timer(2000);
uptemper.OverLoadTemperatureEvent += airconditioner.Start;
uptemper.OverLoadTemperatureEvent += displayer.Display;
uptemper.OverLoadTemperatureEvent += alarmer.Alarm;
mytimer.Elapsed += new ElapsedEventHandler(uptemper.Uptemp);
//如果空调初始状态为关,并且事件中不为空则执行定时器开始工作
mytimer.Start();
Console.ReadKey();
}
}
//定义模拟升温类
public class Uptemper
{
public int temperature;
public int custemp;
public delegate void OverLoadTemperatureHandler(int temperature, int custemp);
public event OverLoadTemperatureHandler OverLoadTemperatureEvent;
public void Uptemp(object sender,ElapsedEventArgs e)
{
custemp = Program.custemp;
temperature = Program.temperature;
//Random myran = new Random(); //声明随机数类型变量
//int x=myran.Next(0,3); //产生随机数
//temperature = temperature + 1;
Program.temperature = temperature+1; //自然升温
//Console.WriteLine("随机数为{0} 加后结果{1}", x, Program.temperature);
OverLoadTemperatureEvent(temperature, custemp);
Console.WriteLine("对象T{0} 类T{1}",temperature,Program.temperature);
}
}
//定义空调器类
public class AirConditioner
{
private int t=3; //定义空调降温幅度。
private int i=5; //定义停机时间隔。
public void Start(int temperature, int custemp)
{
if (i >= 5 && (Program.isStart == false) && Program.temperature > custemp)
{
Console.WriteLine("空调已启动!");
Program.isStart = true;
i = 0;
temperature = temperature - t;
}
else if (Program.isStart == true && Program.temperature > custemp)
{
Console.WriteLine("空调正在工作...");
Program.isStart = true;
temperature = temperature - t;
}
else
{
Program.isStart = false;
Console.WriteLine("空调已关闭···");
i++;
}
Program.temperature = temperature;
//如果空调状态为关,设定温度小于当前温度则空调开始工作
//if (Program.isStart = false&&)
//{
// temperature = temperature - 2;
// OverLoadTemperatureEvent(temperature, custemp);
//}
}
}
//定义显示器类
public class Displayer
{
public void Display(int temperature, int custemp)
{
Console.WriteLine("你设定的温度为: {0} 当前室温为: {1}", custemp, temperature);
}
}
//定义报警器类
public class Alarmer
{
public void Alarm(int temperature, int custemp)
{
if (temperature >= 38)
{
Console.WriteLine("室温太高了!!!");
}
else if (temperature > custemp)
{
Console.WriteLine("室温比较高了!");
}
else if (temperature <= custemp)
{
Console.WriteLine("<室温正常>");
}
else if (temperature <= 18)
{
Console.WriteLine("*****室温太低了*****");
}
}
}
}
temperature = Program.temperature;
Program.temperature = temperature + 1; //自然升温
// 没有必要那么麻烦,直接这样就好了:
++Program.temperature ;