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