110,531
社区成员
发帖
与我相关
我的任务
分享
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
List<雇员类> _雇员类泛型实例对象 = new List<雇员类>();
_雇员类泛型实例对象.Add(new 雇员类(40000));
_雇员类泛型实例对象.Add(new 雇员类(65000));
_雇员类泛型实例对象.Add(new 雇员类(95000));
MethodInfo mi = typeof(雇员类).GetMethod("加薪方法", BindingFlags.Public | BindingFlags.Instance);
委托类型 _委托变量 = (委托类型)Delegate.CreateDelegate(typeof(委托类型), mi);//绑定方法,为什么方法参数表不一致也可以绑定?
foreach (雇员类 雇员类的临时对象 in _雇员类泛型实例对象)
{
_委托变量(雇员类的临时对象, (Decimal)0.10);
MessageBox.Show(雇员类的临时对象.Salary.ToString());
}
}
}
public delegate void 委托类型(雇员类 _雇员类实例对象,Decimal 加薪百分比);
public class 雇员类
{
//字段:
private Decimal salary;
//属性:
public Decimal Salary
{
get
{
return salary;
}
}
//构造函数:
public 雇员类(Decimal salary)
{
this.salary = salary;
}
//加薪方法:
public void 加薪方法(Decimal percent)
{
salary *= (1 + percent);
}
}
public delegate void 委托类型(Decimal 加薪百分比);
委托类型 _委托变量 = (委托类型)Delegate.CreateDelegate(typeof(委托类型), 雇员类的临时对象, mi);