//委托
//2.0之前 命名方法
//2.0引用 匿名方法
//3.0 Lambda 简化匿名方法
// 委托 匿名方法 Lambda
// 委托 是一个类,定义方法的类型,将一个方法当作另一个方法的参数来进行传递
// 类 引用类型
event Caluate CalEvent;
delegate int Caluate(int a, int b);//定义一个委托
public Form1()
{
InitializeComponent();
}
int sum = 4;
//加
private int Add(int x, int y)
{
return sum += x + y;
}
//减
private int Subtract(int x, int y)
{
return sum += x - y;
}
//乘
private int Multiply(int x, int y)
{
return sum += x * y;
}
private void Form1_Load(object sender, EventArgs e)
{
Caluate cal = new Caluate(Add);//委托的实例化
//Caluate cal1 = Subtract;//赋值委托
cal += Subtract;
cal += Multiply; //多播委托,执行是按添加的顺序来执行
cal -= Subtract;//方法的移除
int re = cal.Invoke(3, 5);
int re1 = cal(3, 5);
//匿名方法
Caluate cal2 = delegate(int x, int y)
{
return x + y;
};
cal2 += delegate(int m, int n)
{
return m * n;
};
int re3 = cal2.Invoke(4, 9);//36
//goes to
Caluate cal3 = (int x, int y) => { return x + y; };//Lambda表达式
//2.0之前 命名方法
//2.0引用 匿名方法
//3.0 Lambda 简化匿名方法
// 委托 匿名方法 Lambda
// 委托 是一个类,定义方法的类型,将一个方法当作另一个方法的参数来进行传递
// 类 引用类型
event Caluate CalEvent;
delegate int Caluate(int a, int b);//定义一个委托
public Form1()
{
InitializeComponent();
}
int sum = 4;
//加
private int Add(int x, int y)
{
return sum += x + y;
}
//减
private int Subtract(int x, int y)
{
return sum += x - y;
}
//乘
private int Multiply(int x, int y)
{
return sum += x * y;
}
private void Form1_Load(object sender, EventArgs e)
{
Caluate cal = new Caluate(Add);//委托的实例化
//Caluate cal1 = Subtract;//赋值委托
cal += Subtract;
cal += Multiply; //多播委托,执行是按添加的顺序来执行
cal -= Subtract;//方法的移除
int re = cal.Invoke(3, 5);
int re1 = cal(3, 5);
//匿名方法
Caluate cal2 = delegate(int x, int y)
{
return x + y;
};
cal2 += delegate(int m, int n)
{
return m * n;
};
int re3 = cal2.Invoke(4, 9);//36
//goes to
Caluate cal3 = (int x, int y) => { return x + y; };//Lambda表达式