using System;
using System.IO;
namespace BoilerEventAppl
{
class Boiler
{
private int temp;
private int pressure;
public Boiler(int t, int p)
{
temp = t;
pressure = p;
}
public int getTemp()
{
return temp;
}
public int getPressure()
{
return pressure;
}
}
class DelegateBoilerEvent
{
public delegate void BoilerLogHandler(string status);
public event BoilerLogHandler BoilerEventLog;
public void LogProcess()
{
string remarks = "O.K";
Boiler b = new Boiler(100,12);
int t = b.getTemp();
int p = b.getPressure();
if(t > 150 || t < 80 || p < 12 || p > 15)
{
remarks = "需要维护";
}
OnBoilerEventLog("日志记录信息:\n");
OnBoilerEventLog("温度:" + t + "\n压力: " + p);
OnBoilerEventLog("\n消息: " + remarks);
}
protected void OnBoilerEventLog(string message)
{
if(BoilerEventLog != null)
{
BoilerEventLog(message);
}
}
}
class BoilerInfoLogger
{
FileStream fs;
StreamWriter sw;
public BoilerInfoLogger(string filename)
{
fs = new FileStream(filename, FileMode.Append, FileAccess.Write);
sw = new StreamWriter(fs);
}
public void Logger(string info)
{
sw.WriteLine(info);
}
public void Close()
{
sw.Close();
fs.Close();
}
}
public class RecordBoilerInfo
{
static void Logger(string info)
{
Console.WriteLine(info);
}
static void Main(string[] args)
{
BoilerInfoLogger filelog = new BoilerInfoLogger("e:\\boiler.txt");
DelegateBoilerEvent BoilerEvent = new DelegateBoilerEvent();
BoilerEvent.BoilerEventLog += new DelegateBoilerEvent.BoilerLogHandler(Logger);
BoilerEvent.BoilerEventLog += new DelegateBoilerEvent.BoilerLogHandler(filelog.Logger);
BoilerEvent.LogProcess();
Console.ReadLine();
filelog.Close();
}
}
}