委托是一种动态调用方法的类型,与类、接口和数组相同,都属于引用型。在C#程序中,可以声明委托类型、创建委托的实例(即委托对象)、把方法封装于委托对象之中,这样通过该对象就可以调用方法了。一个完整的方法具有名字、返回值和参数列表,那么用来引用该方法的委托野要求必须具有同样的参数和返回值。
委托对象本质上代表了方法的引用(即内存地址)。在.NET Framework中,委托具有以下特点:
1.委托类似于C++的函数指针,但与指针不同的是,委托时完全面向对象的,是安全的数据类型。
2.委托允许将方法作为参数进行传递。
3.委托可用于定义回调方法。
4.委托可以把多个方法连接在一起,这样在事件触发时,可以同时启动多个事件处理程序。
委托的声明、实例化和使用:
public delegate int calculate(int x,inty); ---------声明
例如有函数
int multiply(int x,int y)
{
return x*y;
}
int add(int x,int y)
{
return x+y;
}
则用委托来引用可用以下语句:
calculate a=new calculate(multiply);
calculate b=new calculate(add);
实例化之后,就可以直接使用委托了,例如int result=a(3,6);执行之后,result值变为3*6即18.