委托:把方法作为方法的参数。
字面意思,委托=方法1(方法2);//方法2是参数
由以上可见方法2是参数,既然是参数那么就应该可变了,所以可以这么说委托=方法1(方法2),委托=方法1(方法3),委托=方法1(方法4)。。。。
一个简单的方法如下
string result(string str)//str参数,类型string
{
......
}
这个方法只能接收string 类型的变量,如“1”,“2”,“three”,其余的不行。
所以委托=方法1(方法n),这个方法n所能接收的参数方法应该是固定模式的(方法自己的参数类型,参数个数,返回类型,作用域,能否实例化)。
方法n把自己委托给了方法1,那么方法1就要不辜负方法n,方法n能返回什么类型,方法n参数什么样,方法1需要认可。
只要以上的读完了,那么最简单的委托就很容易明白了。
class Program
{
static void Main(string[] args)
{
Program p = new Program();
resultDeletege result = new resultDeletege(p.reduction);//委托实际是一种类型
Console.WriteLine(result(3, 5)); //赋值
Console.Read();
}
private delegate int resultDeletege(int a, int b);//定义委托,注意委托的返回类型和参数列表。(方法1)
private int add(int a, int b) //(方法2)
{
return a + b;
}
private int reduction(int a, int b)//(方法3)
{
return a - b;
}
}