用過(guò)C#的委托的同學(xué)都是這Action<> 和 Func<>都是委托【代理】的簡(jiǎn)寫(xiě)形式?。?!
我們先看看定義委托和使用委托的代碼:
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");
接下來(lái)看看Action<> 和 Func<> 的寫(xiě)法
一、【action<>】指定那些只有輸入?yún)?shù),沒(méi)有返回值的委托
public static void HellowChinese(string strChinese)? {? ? ??
? ? ? ? Console.WriteLine("早上好," + strChinese);? ? ??
? ? ? ? Console.ReadLine();?
}? ??
Action<string> ? action = HellowChinese;
action("Spring.");
(注意:就是相當(dāng)于省去了定義委托的步驟了。)
二、func<> 這個(gè)和上面的那個(gè)是一樣的,區(qū)別是需要有返回值的方法!
public static string HelloEnglish(string strEnglish)? {? ? ??
? ? ? ? return "Hello." + strEnglish;??
}? ??
Func<string,string> ? f = HelloEnglish;
Console.WriteLine(f("Srping ji"));
Console.ReadLine();
(注意:Func<> 里面參數(shù),最后一個(gè)參數(shù)表示方法的返回類(lèi)型)