一、【action<>】指定那些只有輸入參數,沒有返回值的委託
Delegate的代碼:
1. public delegate void myDelegate(string str);
2. public static void HellowChinese(string strChinese)
3. {
4. Console.WriteLine("Good morning," + strChinese);
5. Console.ReadLine();
6. }
7.
8. myDelegate d = new myDelegate(HellowChinese);
9. d("Mr wang"); public delegate void myDelegate(string str);
public static void HellowChinese(string strChinese)
{
Console.WriteLine("Good morning," + strChinese);
Console.ReadLine();
}
myDelegate d = new myDelegate(HellowChinese);
d("Mr wang");
用了Action之後呢:
1. public static void HellowChinese(string strChinese)
2. {
3. Console.WriteLine("Good morning," + strChinese);
4. Console.ReadLine();
5. }
6. Action<string> action = HellowChinese;
7. action("Spring.");
public static void HellowChinese(string strChinese)
{
Console.WriteLine("Good morning," + strChinese);
Console.ReadLine();
}
Action<string> action = HellowChinese;
action("Spring.");
就是相當於省去了定義委託的步驟了。
二、func<> 這個和上面的那個是一樣的,區別是這個有返回值!
1. public static string HelloEnglish(string strEnglish)
2. {
3. return "Hello." + strEnglish;
4. }
5. Func<string, string> f = HelloEnglish;
6. Console.WriteLine(f("Srping ji"));
7. Console.ReadLine();