class Program
{
// 定义委托处理程序
public delegate void PlayGameHandler(object sender);
static void Main(string[] args)
{
Console.WriteLine("场景开始了....");
Console.WriteLine(Environment.NewLine);
Zhang zhang = new Zhang();
Wang wang = new Wang();
zhang.PlayGame += new PlayGameHandler(wang.GetbackMoney); //指定监视
zhang.PlayGame += new PlayGameHandler(wang.GiveMoneyBackToZhang);
zhang.PlayCS();
Console.WriteLine(Environment.NewLine);
Console.WriteLine("场景结束...");
Console.ReadLine();
}
// 负责扣钱的人
internal class Wang
{
public Wang()
{
Console.WriteLine("小王上班了...");
}
public void GetbackMoney(object sender)
{
Console.WriteLine(Environment.NewLine);
Console.WriteLine("小王:好小子,上班时间胆敢玩游戏...");
Console.WriteLine("小王:看看你小子有多少钱...");
Zhang f = (Zhang)sender; //这句很关键
Console.WriteLine("小张的钱: " + f.Money.ToString());
Console.WriteLine("开始扣钱......");
System.Threading.Thread.Sleep(1000);
f.DecreaseMoney();
Console.WriteLine("小张:可怜啊,现在只剩下" + f.Money.ToString() + "了");
}
public void GiveMoneyBackToZhang(object sender)
{
Console.WriteLine(Environment.NewLine);
Console.WriteLine("小王:哥们,还是把钱还给你吧...");
Console.WriteLine("小王:咱俩谁跟谁啊...");
Zhang f = (Zhang)sender; //这句很关键
Console.WriteLine("小张的钱: " + f.Money.ToString());
Console.WriteLine("开始加钱......");
System.Threading.Thread.Sleep(1000);
f.IncreaseMoney();
Console.WriteLine("小张:啊哈,现在又有" + f.Money.ToString() + "了");
}
}
internal class Zhang
{
// 先定义一个事件,这个事件表示“Zhang”在玩游戏。
public event PlayGameHandler PlayGame;
// 保存Zhang钱的变量
private int m_Money;
public int Money
{
get { return m_Money; }
}
public Zhang()
{
m_Money = 1000; // 构造函数,初始化Zhang的钱。
Console.WriteLine("小张上班了,小张昨天得到1000块钱奖励....");
}
public void DecreaseMoney()
{
m_Money -= 500;
}
public void IncreaseMoney()
{
m_Money += 500;
}
public void PlayCS()
{
Console.WriteLine(Environment.NewLine);
Console.WriteLine("小张开始玩游戏了.....");
Console.WriteLine("小张:CS好玩,哈哈哈! 我玩.....");
System.Threading.Thread.Sleep(1000);
System.EventArgs e = new EventArgs();
OnPlayGame();
}
protected virtual void OnPlayGame()
{
if (PlayGame != null)
{
PlayGame(this);
}
}
}
}
参考网址:http://topic.csdn.net/u/20090627/17/ae3a38bb-cf15-4c73-9a30-1e1260a15237.html?60334