AI智能
改变未来

C#委托详解实例

首先看一个例子,一名律师代表三名员工向老板讨薪
员工将讨薪方法委托为律师
涉及到三个对象:员工,老板,律师

/// <summary>/// 员工/// </summary>class Employee {public string name;public int money;public Employee() { }public Employee(string name, int money) {this.name = name;this.money = money;}/// <summary>/// 员工有讨薪的权利,也就是有这个方法/// </summary>public void GetMoney(Boss b) {Console.WriteLine(\"我是{0},{1}还我血汗钱{2}\",name,b.name,money);}}
/// <summary>/// 老板/// </summary>class Boss {public string name;public Boss(string name) {this.name = name;}}

//创建一个讨薪的委托
delegate void GetMoneyDele(Boss boss)

/// <summary>/// 律师/// </summary>class Lawyee {public string name;public Lawyee(string name) {this.name = name;}GetMoneyDele getMoneyDele = null;Boss target = null;/// <summary>/// 员工将讨薪方法委托为律师/// 1.需要获取员工的讨薪方法:将方法当成一个参数进行传递/// 2.方法所需要参数也需要传进来/// </summary>public void AddGetMoney(GetMoneyDele dele,Boss boss) {if (getMoneyDele == null){getMoneyDele = new GetMoneyDele(dele);target = boss;}else {getMoneyDele += dele;}}/// <summary>/// 律师开始讨薪了:执行委托/// </summary>public void GetMoney() {getMoneyDele(target);}}
static void Main(string[] args){//Boss类:老板类//Lawyee类:律师类//Employee员工类://员工张三、李四、王五委托律师赵六律师跟Boss田七讨薪Boss zj = new Boss(\"zj\");Employee zhangsan = new Employee(\"张三\", 10000);Employee lisi = new Employee(\"李四\", 12000);Employee wangwu = new Employee(\"王五\", 22000);//zhangsan.GetMoney(zj);//lisi.GetMoney(zj);//wangwu.GetMoney(zj);Lawyee zhaoliu = new Lawyee(\"赵六\");zhaoliu.AddGetMoney(zhangsan.GetMoney, zj);zhaoliu.AddGetMoney(lisi.GetMoney, zj);zhaoliu.AddGetMoney(wangwu.GetMoney, zj);zhaoliu.GetMoney();Console.ReadLine();}
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C#委托详解实例