C#关于委托与事件的例子
2011-05-06 16:17
357 查看
/// <summary>
/// 事件的参数类
/// </summary>
public class EatEventArgs : EventArgs
{
public string hotelsName;
public int moneyOut;
}
/// <summary>
/// 事件的发送者
/// </summary>
public class Mastor
{
//声明一个委托
public delegate void EatEventHandles(object sender, EatEventArgs e);
//声明一个事件
public event EatEventHandles EatEvent;
//触发事件函数
public void OnEatEvent(EatEventArgs e)
{
if (EatEvent != null)
{
EatEvent(this, e);
}
}
//饿的时候执行‘触发函数’
public void Hungry()
{
Console.WriteLine("主人说:饿了,要吃饭,地点老地方,消费金额老价钱");
EatEventArgs e = new EatEventArgs();
e.hotelsName = "鲍翅皇宫";
e.moneyOut = 10000;
OnEatEvent(e);
}
}
/// <summary>
/// 事件的处理者
/// </summary>
public class Servant
{
//构造函数
public Servant(Mastor mastor)
{
mastor.EatEvent += new Mastor.EatEventHandles(this.Arrange);
}
//委托的处理函数
public void Arrange(object sender, EatEventArgs e)
{
//new Mastor().EatEvent+=new Mastor.EatEventHandles(Arrange);
Console.WriteLine("主人稍等,我这就安排");
System.Threading.Thread.Sleep(5000);
Console.WriteLine();
Console.WriteLine("主人,{0}饭店的{1}大餐已经安排好,请慢用……", e.hotelsName, e.moneyOut);
}
}
/// <summary>
/// 调用
/// </summary>
public class Test3
{
public static void Main()
{
//创建事件发送者的实例
Mastor mastor = new Mastor();
//创建事件处理者的实例
Servant servant = new Servant(mastor);
//将处理者与发送者关联起来
//mastor.EatEvent += new Mastor.EatEventHandles(servant.Arrange);
//事件发送者开始触发事件
mastor.Hungry();
}
}
/// 事件的参数类
/// </summary>
public class EatEventArgs : EventArgs
{
public string hotelsName;
public int moneyOut;
}
/// <summary>
/// 事件的发送者
/// </summary>
public class Mastor
{
//声明一个委托
public delegate void EatEventHandles(object sender, EatEventArgs e);
//声明一个事件
public event EatEventHandles EatEvent;
//触发事件函数
public void OnEatEvent(EatEventArgs e)
{
if (EatEvent != null)
{
EatEvent(this, e);
}
}
//饿的时候执行‘触发函数’
public void Hungry()
{
Console.WriteLine("主人说:饿了,要吃饭,地点老地方,消费金额老价钱");
EatEventArgs e = new EatEventArgs();
e.hotelsName = "鲍翅皇宫";
e.moneyOut = 10000;
OnEatEvent(e);
}
}
/// <summary>
/// 事件的处理者
/// </summary>
public class Servant
{
//构造函数
public Servant(Mastor mastor)
{
mastor.EatEvent += new Mastor.EatEventHandles(this.Arrange);
}
//委托的处理函数
public void Arrange(object sender, EatEventArgs e)
{
//new Mastor().EatEvent+=new Mastor.EatEventHandles(Arrange);
Console.WriteLine("主人稍等,我这就安排");
System.Threading.Thread.Sleep(5000);
Console.WriteLine();
Console.WriteLine("主人,{0}饭店的{1}大餐已经安排好,请慢用……", e.hotelsName, e.moneyOut);
}
}
/// <summary>
/// 调用
/// </summary>
public class Test3
{
public static void Main()
{
//创建事件发送者的实例
Mastor mastor = new Mastor();
//创建事件处理者的实例
Servant servant = new Servant(mastor);
//将处理者与发送者关联起来
//mastor.EatEvent += new Mastor.EatEventHandles(servant.Arrange);
//事件发送者开始触发事件
mastor.Hungry();
}
}
相关文章推荐
- C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
- C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
- C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
- C# 关于委托和事件的妙文
- (每日心得)关于C#中委托与事件的一些认识(一)
- 关于C#.Net中事件(event)、委托(delegate)和方法的一点理解
- 很有助于理解C#中事件和委托的例子
- 关于C# 委托(delegate)与事件(event)的用法及事例
- C# 中的委托和事件 (很好的说明例子)
- 关于委托事件的一两个很好的例子
- c#关于委托和事件(一)(介绍的很详细)
- c#关于委托和事件
- C# 关于事件 委托的理解
- 关于C#的delegate(委托)和event(事件)的使用
- C#例子 易懂故事 接口 委托 事件 异步通知 好玩.
- C#关于委托和事件(基础)
- c#关于委托和事件(三)
- [转摘] 关于C#中委托和事件机制的一个最佳实例
- C#中的委托和事件(小例子)
- 关于委托事件的一两个很好的例子