标签:
Func是一个.Net内置的委托。
Func<Result>,Func<T1,Result>是一个.Net内置的泛型委托。
它有5种形式,只是参数个数不同;第一个是无参数,但是有返回值;
下面是一个简单的普通委托来传方法的示例。
private delegate string Say(); public static string SayHello() { return "Hello"; } static void Main(string[] args) { Say say = SayHello; Console.WriteLine(say()); Console.ReadKey(); }
所以,在有时候,我们不知道一个接口同时要做什么操作的时候,我可以给它留一个委托。
为了更方便,.Net直接默认有了委托。我们再来试试.Net默认带的委托。
public static string SayHello() { return "Hello"; } static void Main(string[] args) { Func<string> say = SayHello; Console.WriteLine(say()); Console.ReadKey(); }
如果需要参数的,还可以这样传一份。
public static string SayHello(string str) { return str + str; } static void Main(string[] args) { Func<string, string> say = SayHello; string str = say("abc"); Console.WriteLine(str); //输出abcabc Console.ReadKey(); }
Action<T>的用法与Func几乎一样,调用方法也类似。
private delegate string Say(); public static void SayHello(string str) { Console.WriteLine(str); } static void Main(string[] args) { Action<string> say = SayHello; say("abc"); Console.ReadKey(); }
Func与Action作用几乎一样。只是
还是以一个输入后,返回重复一次的值作为示例。
Func<string, string> say = m => m + m; Console.WriteLine(say("abc")); //输出abcabc
标签:
原文地址:http://www.cnblogs.com/kissdodog/p/5674629.html