委托(delegete):是存在有对某个方法引用的一种引用类型变量。
委托定义了方法的类型,可以把一个方法当作另一个方法的参数。
所有的委托都派生自Sysytem.Delegate类。
委托声明决定了可由该委托引用的方法。委托可指向一个与其具有相同方法的方法。
委托声明语法:
[访问修饰符] delegate 返回值类型 委托名(参数列表);
public delegete void AddInfo(int a,int b);
public delegete int Cal(int a,int b);
相同签名:方法的返回值类型、参数类型、参数个数、参数顺序、都完全相同,并不是方法名和委托名相同。
delegate int Cal(int x, int y);
private int Add(int a, int b)
{
return a + b;
}
private void btndelegate_Click(object sender, EventArgs e)
{
//实例化委托 new创建,用方法的签名来创建
Cal cal = new Cal(Add);
//委托调用
int result=cal.Invoke(12,13);
int result2 = cal(12,13);
}
同样的好吃懒做,可大熊猫和猪却完全不一样,归根到底是这是个看脸的世界。