首页 > 代码库 > 委托和事件的使用
委托和事件的使用
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegatedemo
{
public delegate void BoilDelegate(int temp);
public class Heater
{
public int temprature;
public event BoilDelegate boilEvent;
public void Boil()
{
for (int i = 0; i <= 100; i++)
{
temprature = i;
if (temprature > 95)
{
if (boilEvent != null)
{
boilEvent(temprature);
}
}
}
}
}
}
显示器和报警器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegatedemo
{
public class Alerm
{
public void MakeAlerm(int temp)
{
Console.WriteLine("滴滴滴,水已经{0}度!", temp);
}
}
public class Display
{
public void ShowMsg(int temp)
{
Console.WriteLine("水温是{0}度", temp);
Console.ReadKey();
}
}
}
调用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegatedemo
{
class Program
{
static void Main(string[] args)
{
heater = new Heater();
heater.boilEvent += new Alerm().MakeAlerm;//注册报警器发出警报的事件
heater.boilEvent += new Display().ShowMsg;//注册显示温度的事件
heater.Boil();
}
}
}
委托和事件的使用