参考:
http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.html
直接上代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace Delegate
{
//加热器
public class Heater
{
private int tempurature;
public delegate void BoilHandler(int param);
public event BoilHandler Boilevent;
public void BoilWater()
{
int i = 0;
while (i < 100)
{
tempurature = i;
if (tempurature > 95)
{
if (Boilevent!=null)
{
Boilevent(tempurature);
}
}
i++;
}
}
}
//显示器
public class Displayer
{
public void showMsg(int t)
{
Console.WriteLine("当前温度是{0}度",t);
}
}
//警报器
public class Alarmer
{
public static void alam(int t)
{
Console.WriteLine("警告!温度已经{0}度了,水即将烧开了!",t);
}
}
public class Program
{
public static void Main()
{
Heater heater = new Heater();
Displayer displayer = new Displayer();
//注册方法
heater.Boilevent += displayer.showMsg;//注册对象的方法
heater.Boilevent += (new Displayer().showMsg);//注册匿名对象方法
heater.Boilevent += Alarmer.alam;//注册静态方法
heater.BoilWater();
}
}
}