问题:老板吩咐小王,当小李玩游戏时候,就把小李薪水扣掉100块。
(我按自己的习惯,重写的代码,更好理解了)
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace AspNetTest.Common
{
/// <summary>
/// Define_Delegate_Xiaowang 的摘要说明。
/// </summary>
public class Define_Delegate_Xiaowang : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
XiaoLi xiaoli = new XiaoLi(1500);
Response.Write("小李打游戏前的薪水是:" + xiaoli.Sacalar.ToString() + "<br>");
XiaoWang xiaowang = new XiaoWang();
xiaoli.PlayGameEvent += new PlayEventHandler(xiaowang.SubtractSalary);
xiaoli.PlayGame();
Response.Write("小李打游戏后的薪水是:" + xiaoli.Sacalar.ToString() + "<br>");
// 在此处放置用户代码以初始化页面
}
public delegate void PlayEventHandler(Empolyee sender);
public class Empolyee
{
public Empolyee(double sacalar)
{
this.sacalar = sacalar;
}
private double sacalar;
public double Sacalar
{
get
{
return sacalar;
}
set
{
this.sacalar = value;
}
}
}
public abstract class EmpolyeeWhoPlay : Empolyee
{
public EmpolyeeWhoPlay(double sacalar) : base(sacalar)
{
}
public abstract void PlayGame();
}
public class XiaoLi : EmpolyeeWhoPlay
{
public XiaoLi(double sacalar) : base(sacalar)
{
}
public PlayEventHandler PlayGameEvent;
private void OnPlayGame()
{
if(PlayGameEvent != null)
{
PlayGameEvent(this);
}
}
public override void PlayGame()
{
HttpContext.Current.Response.Write("小李正在玩游戏!<br>");
OnPlayGame();
}
}
public class XiaoWang
{
public void SubtractSalary(Empolyee sender)
{
sender.Sacalar -= 100;
HttpContext.Current.Response.Write("小王发现了小李打游戏,扣了小李薪水100块!<br>");
}
}
Web 窗体设计器生成的代码
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace AspNetTest.Common
{
/// <summary>
/// Define_Delegate_Xiaowang 的摘要说明。
/// </summary>
public class Define_Delegate_Xiaowang : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
XiaoLi xiaoli = new XiaoLi(1500);
Response.Write("小李打游戏前的薪水是:" + xiaoli.Sacalar.ToString() + "<br>");
XiaoWang xiaowang = new XiaoWang();
xiaoli.PlayGameEvent += new PlayEventHandler(xiaowang.SubtractSalary);
xiaoli.PlayGame();
Response.Write("小李打游戏后的薪水是:" + xiaoli.Sacalar.ToString() + "<br>");
// 在此处放置用户代码以初始化页面
}
public delegate void PlayEventHandler(Empolyee sender);
public class Empolyee
{
public Empolyee(double sacalar)
{
this.sacalar = sacalar;
}
private double sacalar;
public double Sacalar
{
get
{
return sacalar;
}
set
{
this.sacalar = value;
}
}
}
public abstract class EmpolyeeWhoPlay : Empolyee
{
public EmpolyeeWhoPlay(double sacalar) : base(sacalar)
{
}
public abstract void PlayGame();
}
public class XiaoLi : EmpolyeeWhoPlay
{
public XiaoLi(double sacalar) : base(sacalar)
{
}
public PlayEventHandler PlayGameEvent;
private void OnPlayGame()
{
if(PlayGameEvent != null)
{
PlayGameEvent(this);
}
}
public override void PlayGame()
{
HttpContext.Current.Response.Write("小李正在玩游戏!<br>");
OnPlayGame();
}
}
public class XiaoWang
{
public void SubtractSalary(Empolyee sender)
{
sender.Sacalar -= 100;
HttpContext.Current.Response.Write("小王发现了小李打游戏,扣了小李薪水100块!<br>");
}
}
Web 窗体设计器生成的代码
}
}