一、基本概念
1.定义
委托(delegrate)是一种可以把引用存储为函数的类型。委托给了C#操作函数的灵活性,我们可使用委托像操作变量一样来操作函数,其实这个功能并不是C#的首创,早在C++时代就有函数指针这一说法,而在我看来委托就是C#的函数指针。
2.声明
类似于函数,指定一个返回类型和参数列表。
delegate <函数返回类型> <委托名> (<函数参数>)
3.示例化
<委托类型> <实例化名>=new <委托类型>(<注册函数>)
二、示例程序
delegate double ProcessDelegate (double param1,doublle param2);
static double Mutiply (double param1,double param2)
{
return param1*param2;
}
static double Divide(double param1,double param2)
{
return param1/param2;
}
在主函数调用时(这里只写了相关部分的代码):
ProcessDelegate process; //声明一个委托变量
if(input(=="m“)
process=new processDelegate(Multiply); // 委托变量的初始化,Multiply 是与委托变量有相同返回类型和参数列表的函数的引用。
else
process=new processDelegate(Divide);
......
process(param1,param2);// 调用指定的函数