(摘抄与:<<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关键字创建一个新委托.在这个关键字的后面,指定委托类型,提供一个引用函数的
参数.注意这个参数与委托类型或目标函数的参数不匹配,这是委托赋值的一个独特语法,参数是要使用的函数名,且不
带括号.
本文介绍了C#中的委托概念,解释了如何声明委托、初始化委托变量并将其作为参数传递。通过实例展示了委托如何允许函数被当作参数传递并在运行时确定调用哪个函数。

被折叠的 条评论
为什么被折叠?



