1.委托的声明:
委托的声明与方法相似,有一个返回值和任意数量任意类型的参数:
public delegate void TestDelegate(string message);
public delegate int TestDelegate(MyType m, long num);
delegate 是一种可用于封装命名或匿名方法的引用类型。
委托类似于 C++ 中的函数指针,但是委托更加的安全可靠。
委托是基于事件的基础,通过将委托与命名方法或者匿名方法关联,可以实例化委托。
2.委托的基本应用
在这里列举三种委托的实例:
private delegate double MyDelegate(double input);
private static double Double(double input)
{
return input*2;
}
private void MyWork()
{
//用命名方法实例化委托
MyDelegate dgate1 = Double;
Console.WriteLine(dgate1(3.2));
//用匿名方法实例化委托
MyDelegate dgate2 = delegate(double input)
{
return input*input;
};
Console.WriteLine(dgate2(3.2));
//用表达式实例化委托
MyDelegate dgate3=s=>s*s*s;
Console.WriteLine(dgate3(3.2));
}