class Program
{
static void Main(string[] args)
{
Console.WriteLine("场景开始,,老板委托主管director监看员工 是否上班时间玩游戏\n");
System.Threading.Thread.Sleep(2000);
director rector = new director();
employee em = new employee();
em.PlayGameEvent += new employee.PlayGamehandler(rector.PlayGameHandler);
em.PlayGame();
System.Threading.Thread.Sleep(2000);
Console.WriteLine("场景结束,各位同志,一个一个退场~~88");
}
}
class director
{
public director()
{
Console.WriteLine("我是主管,现在我出场了\n");
System.Threading.Thread.Sleep(2000);
}
/// <summary>
/// 处理玩游戏者
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void PlayGameHandler(object sender,System.EventArgs e)
{
Console.WriteLine("小子,敢玩游戏,被我看到了吧\n");
System.Threading.Thread.Sleep(2000);
employee em = new employee();
int money = em.Money-500;
Console.WriteLine("你玩吧,我就扣你工资 \n\n MS MM现在的工资是" + money);
Console.WriteLine("MS MM 555……我不敢了饶了我吧。。\n\n没们");
}
}
class employee
{
/// <summary>
/// 定义一个事件发生的委托
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public delegate void PlayGamehandler(object sender, System.EventArgs e);
/// <summary>
/// 事件源,声明该委托类型的事件
/// </summary>
public event PlayGamehandler PlayGameEvent;
int _money;
public int Money
{
get{return _money;}
set{_money=value;}
}
/// <summary>
/// 初始化员工类
/// </summary>
public employee()
{
Console.WriteLine("我是Ms MM,现在我出场了\n");
Money=1000;
Console.WriteLine("我现在的 Money 是"+Money+"\n");
System.Threading.Thread.Sleep(2000);
}
/// <summary>
/// 开始玩游戏了
/// </summary>
public void PlayGame()
{
Console.WriteLine("开始玩游戏!\n");
System.Threading.Thread.Sleep(2000);
Console.WriteLine("靠,,魔兽好玩得很嘛~\n");
eventPlayGame(new EventArgs());
}
/// <summary>
/// 类声明了事件以后,可以就像处理所指示的委托类型的字段那样处理该事件
/// </summary>
/// <param name="e"></param>
protected void eventPlayGame(EventArgs e)
{
if (PlayGameEvent != null)
{
PlayGameEvent.Invoke(this, e);
}
}
}