1.实现要点
1)发布器-订阅器模式,发布器是时间的触发者,订阅器是事件的响应者
2)通过委托实现
3)声明事件必须通过关键字event声明
4)1.声明委托 2.声明事件 3. 事件触发 4.事件响应
2.举例
/***********发布器类***********/
public class EventTest
{
public delegate void NumManipulationHandler(string name, int a); //声明委托
public event NumManipulationHandler ChangeNum; //声明事件
public void OpenDoor(string name, int a)//模拟事件
{
ChangeNum(name, a); //事件触发
}
}
/***********订阅器类***********/
public class subscribEvent
{
public void result(string name, int a)//事件响应
{
Console.WriteLine("{0} is arriving at Airport Terminal{1}", name, a);
}
}
/***********触发***********/
public class MainClass
{
public static void Main()
{
EventTest e = new EventTest(); /* 实例化事件触发对象 */
subscribEvent v = new subscribEvent(); /* 实例化订阅事件对象 */
/* 订阅器的printf()在事件触发对象中注册到委托事件中 */
e.ChangeNum += new EventTest.NumManipulationHandler(v.result);
e.OpenDoor("Yang", 3); /* 模拟事件 */
Console.ReadKey();
}
}