委托与泛型

来源:互联网 发布:知乎回答问题如何匿名 编辑:程序博客网 时间:2024/06/07 06:10

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));}
原创粉丝点击