(摘抄与:<<C#入门经典>>122页)
委托是一种可以把引用存储为函数的类型.(笔者注:意义不明白.)
委托的声明非常类似与函数,但不带函数体,且要使用delegate([ 'deligit ])关键字.委托的声明指定了一个函数签名,
其中包含一个返回类型和参数列表.在定义了一个委托后,就可以声明该委托类型的变量.接着把这个变量初
试化为与委托有相同签名的函数引用(笔者注:可以根据需要,指定符合格式的不同处理内容的函数!).之后,就可以使用
委托变量使用这个函数,就象该变量是一个函数一样.
有了引用函数的变量后,还可以执行不能用其他方式完成的操作.例如,可以把委托变量作为参数传递给一
个函数,这样,该函数就可以使用委托调用它引用的任何函数,而且在运行之前无需知道调用的是哪个函数.
举例如:
delegate double ProcessDelegate(double param1,double param2);
{
ProcessDelegate process;
process= new ProcessDelegate(函数1);
process(param1,param2);
process= new ProcessDelegate(函数2);
process(param1,param2);
}
要把一个函数引用赋给委托变量(process= new ProcessDelegate(函数2);),需要使用略显古怪的语法.这个过程比
较类似于给数组赋值,必须使用new关键字创建一个新委托.在这个关键字的后面,指定委托类型,提供一个引用函数的
参数.注意这个参数与委托类型或目标函数的参数不匹配,这是委托赋值的一个独特语法,参数是要使用的函数名,且不
带括号.