.NET内置的委托 Func、Action

Func与Action作用几乎一样。只是
Func<Result>有返回类型;
Action<T>只有参数类型,不能传返回类型。所以Action<T>的委托函数都是没有返回值的。


Func<TResult>      相当于自定委托  private delegate string Say();
Func<T,TResult>   带一个参数类型为T   返回类型为Tresult
Func<T1,T2,TResult>
Func<T1,T2,T3,TResult>
Func<T1,T2,T3,T4,TResult>
以下是一个《带一个参数类型为string  返回类型为string》应用实例代码
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          相当于自定委托  private delegate void Say();
Action<T>     带一个参数类型为T
Action<T1,T2>
Action<T1,T2,T3>
Action<T1,T2,T3,T4>
以下是一个  《带一个参数类型string》  应用实例代码 
public static void SayHello(string str)
{
    Console.WriteLine(str);
}
 
static void Main(string[] args)
{
    Action<string> say = SayHello;
    say("abc");
    Console.ReadKey();
}