In fact, both of them are abbreviated form of delegated [proxy. 1. [action <>] specifies the code that delegates Delegate with only input parameters and no return value: [csharp] 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"); after using Action: [csharp] public static void HellowChinese (string strChinese) {Console. writeLine ("Good morning," + strC Hinese); Console. ReadLine () ;}action <string> Action = HellowChinese; action ("Spring."); is equivalent to eliminating the step of defining the delegate. Ii. func <> This is the same as the one above. The difference is that there is a returned value! [Csharp] www.2cto. compublic static string HelloEnglish (string strEnglish) {return "Hello. "+ strEnglish;} Func <string, string> f = HelloEnglish; Console. writeLine (f ("Srping ji"); Console. readLine ();