用过C#的委托的同学都是这Action<> 和 Func<>都是委托【代理】的简写形式!!!
我们先看看定义委托和使用委托的代码:
public delegate void delegate1(string str);
public static void HellowChinese(string strChinese)
{
Console.WriteLine("早上好," + strChinese);
Console.ReadLine();
}
delegate1 d = new delegate1(HellowChinese);
d("Mr wang");
接下来看看Action<> 和 Func<> 的写法
一、【action<>】指定那些只有输入参数,没有返回值的委托
public static void HellowChinese(string strChinese) {
Console.WriteLine("早上好," + strChinese);
Console.ReadLine();
}
Action<string> action = HellowChinese;
action("Spring.");
(注意:就是相当于省去了定义委托的步骤了。)
二、func<> 这个和上面的那个是一样的,区别是需要有返回值的方法!
public static string HelloEnglish(string strEnglish) {
return "Hello." + strEnglish;
}
Func<string,string> f = HelloEnglish;
Console.WriteLine(f("Srping ji"));
Console.ReadLine();
(注意:Func<> 里面参数,最后一个参数表示方法的返回类型)