using System;
namespace gainian.DelegateExample
{
public delegate void EatEventHander(object sender, EatEventArgs e);
public class EatEventArgs: EventArgs
{
public string EatWhere;
public decimal EatMoney;
public EatEventArgs(string EatWhere, decimal EatMoney)
{
this.EatWhere = EatWhere;
this.EatMoney = EatMoney;
}
}
public class Delegate1
{
// static void Main(string[] args)
// {
// Master master = new Master();
// Servant servant = new Servant();
//
// master.EatEvent += new EatEventHander(servant.Arrange);
// master.OnHungry("福州大酒店", 1000);
//
// Console.ReadLine();
// }
}
class Master
{
public event EatEventHander EatEvent;
private void OnEatEvent(EatEventArgs e)
{
if(EatEvent!=null)
{
EatEvent(this, e);
}
}
public void OnHungry(string EatWhere, decimal EatMoney)
{
EatEventArgs e = new EatEventArgs(EatWhere, EatMoney);
Console.WriteLine("主人:我肚子有点饿了!");
Console.WriteLine("主人:我准备去 {0}吃饭,",EatWhere);
Console.WriteLine("主人:准备消费 {0} !",EatMoney);
Console.WriteLine("主人:仆人,快替我准备预定!\n");
OnEatEvent(e);
}
}
class Servant
{
public void Arrange(object sender, EatEventArgs e)
{
Console.WriteLine("仆人:我已接到您的指示了!");
Console.WriteLine("仆人:您准备去 {0}吃饭,",e.EatWhere);
Console.WriteLine("仆人:您消费 {0} !",e.EatMoney);
Console.WriteLine("仆人:我马上帮您预定!\n");
}
}
}
namespace gainian.DelegateExample
{
public delegate void EatEventHander(object sender, EatEventArgs e);
public class EatEventArgs: EventArgs
{
public string EatWhere;
public decimal EatMoney;
public EatEventArgs(string EatWhere, decimal EatMoney)
{
this.EatWhere = EatWhere;
this.EatMoney = EatMoney;
}
}
public class Delegate1
{
// static void Main(string[] args)
// {
// Master master = new Master();
// Servant servant = new Servant();
//
// master.EatEvent += new EatEventHander(servant.Arrange);
// master.OnHungry("福州大酒店", 1000);
//
// Console.ReadLine();
// }
}
class Master
{
public event EatEventHander EatEvent;
private void OnEatEvent(EatEventArgs e)
{
if(EatEvent!=null)
{
EatEvent(this, e);
}
}
public void OnHungry(string EatWhere, decimal EatMoney)
{
EatEventArgs e = new EatEventArgs(EatWhere, EatMoney);
Console.WriteLine("主人:我肚子有点饿了!");
Console.WriteLine("主人:我准备去 {0}吃饭,",EatWhere);
Console.WriteLine("主人:准备消费 {0} !",EatMoney);
Console.WriteLine("主人:仆人,快替我准备预定!\n");
OnEatEvent(e);
}
}
class Servant
{
public void Arrange(object sender, EatEventArgs e)
{
Console.WriteLine("仆人:我已接到您的指示了!");
Console.WriteLine("仆人:您准备去 {0}吃饭,",e.EatWhere);
Console.WriteLine("仆人:您消费 {0} !",e.EatMoney);
Console.WriteLine("仆人:我马上帮您预定!\n");
}
}
}
using System;
namespace gainian.DelegateExample
{
public delegate void PlaygameEventHandle(Employee emp);
/// <summary>
/// Delegate2 的摘要说明。
/// </summary>
public class Delegate2
{
public Delegate2()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
static void Main(string[] args)
{
XiaoLi xiaoli = new XiaoLi("小李",1000);
XiaoZhang xiaozhang = new XiaoZhang("小张",1000);
Console.WriteLine("小李原来的薪水是 {0}", xiaoli.Salary);
xiaoli.playgameEvent += new PlaygameEventHandle(xiaozhang.SubtractSalary);
xiaoli.OnPlaygame();
Console.WriteLine("小李打游戏后的薪水是 {0}", xiaoli.Salary);
Console.ReadLine();
}
}
public class Employee
{
private string name;
private decimal salary;
public Employee(string name, decimal salary)
{
this.name = name;
this.salary = salary;
}
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
public decimal Salary
{
get
{
return this.salary;
}
set
{
this.salary = value;
}
}
public virtual void OnPlaygame()
{
this.salary -= 10;
}
}
public class XiaoLi: Employee
{
public XiaoLi(string name, decimal salary) : base(name,salary)
{}
public event PlaygameEventHandle playgameEvent;
public override void OnPlaygame()
{
Console.WriteLine("\n小李正在打游戏。。。\n");
if(playgameEvent!=null)
{
playgameEvent(this);
}
}
}
public class XiaoZhang: Employee
{
public XiaoZhang(string name, decimal salary) : base(name,salary)
{}
public void SubtractSalary(Employee emp)
{
Console.WriteLine(this.Name + " 发现 " + emp.Name + " 在打游戏。");
emp.Salary -= 100;
Console.WriteLine(this.Name + " 扣了 " + emp.Name + " 100块钱!\n");
}
}
}
namespace gainian.DelegateExample
{
public delegate void PlaygameEventHandle(Employee emp);
/// <summary>
/// Delegate2 的摘要说明。
/// </summary>
public class Delegate2
{
public Delegate2()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
static void Main(string[] args)
{
XiaoLi xiaoli = new XiaoLi("小李",1000);
XiaoZhang xiaozhang = new XiaoZhang("小张",1000);
Console.WriteLine("小李原来的薪水是 {0}", xiaoli.Salary);
xiaoli.playgameEvent += new PlaygameEventHandle(xiaozhang.SubtractSalary);
xiaoli.OnPlaygame();
Console.WriteLine("小李打游戏后的薪水是 {0}", xiaoli.Salary);
Console.ReadLine();
}
}
public class Employee
{
private string name;
private decimal salary;
public Employee(string name, decimal salary)
{
this.name = name;
this.salary = salary;
}
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
public decimal Salary
{
get
{
return this.salary;
}
set
{
this.salary = value;
}
}
public virtual void OnPlaygame()
{
this.salary -= 10;
}
}
public class XiaoLi: Employee
{
public XiaoLi(string name, decimal salary) : base(name,salary)
{}
public event PlaygameEventHandle playgameEvent;
public override void OnPlaygame()
{
Console.WriteLine("\n小李正在打游戏。。。\n");
if(playgameEvent!=null)
{
playgameEvent(this);
}
}
}
public class XiaoZhang: Employee
{
public XiaoZhang(string name, decimal salary) : base(name,salary)
{}
public void SubtractSalary(Employee emp)
{
Console.WriteLine(this.Name + " 发现 " + emp.Name + " 在打游戏。");
emp.Salary -= 100;
Console.WriteLine(this.Name + " 扣了 " + emp.Name + " 100块钱!\n");
}
}
}