1.什么是事件
事件就是方法数组(即委托链、方法链),从含义来上说就是在干某件事的时候触发的一个通知;例如我某人在喝茶,在喝茶前他需要通知其他人,那么我们就需要在喝茶前定义一个事件。
2.事件的定义
假如我们需要定义一个喝茶事件:
3.喝茶事件
假如我要在“A”喝茶的时候通知“B”那么我们需要在“A”中定义一个喝茶事件,“B”中来接收“A”的事件。
事件就是方法数组(即委托链、方法链),从含义来上说就是在干某件事的时候触发的一个通知;例如我某人在喝茶,在喝茶前他需要通知其他人,那么我们就需要在喝茶前定义一个事件。
2.事件的定义
假如我们需要定义一个喝茶事件:
第1步:定义一个喝茶事件处理的方法类型(委托)
public delegate int 喝茶事件处理者(string 喝茶人, string 喝什么茶);
第2步:再在对象中定义他的“开始喝茶”事件public event 喝茶事件处理者 开始喝茶;
3.喝茶事件
假如我要在“A”喝茶的时候通知“B”那么我们需要在“A”中定义一个喝茶事件,“B”中来接收“A”的事件。
示例:
namespace tea
{
public delegate void 喝茶事件处理者(string 喝茶人, string 喝什么茶);
public class 人
{
public event 喝茶事件处理者 开始喝茶;
public void 喝茶()
{
//判断是否有人接收通知
if (开始喝茶 != null)
{
//发出通知自己在喝茶。
开始喝茶("张三", "铁观音");
}
}
}
public class 管理员
{
private 人 喝茶人;
public 管理员()
{
喝茶人 = new 人();
//接收喝茶人的通知。
喝茶人.开始喝茶 += new 喝茶事件处理者(喝茶人_开始喝茶);
}
private void 喝茶人_开始喝茶(string 喝茶人, string 喝什么茶)
{
MessageBox.Show(string.Format("{0}开始喝{1}茶", 喝茶人, 喝什么茶), "有人喝茶");
}
}
}