一、【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();