C# 中的委託是利用方法當作函數的參數,方便不同種類及功能的實現,一般包括有 delegate 、Action 、Func 、Predicate  四種,在這裡僅針對 Action & Func 兩種做介紹,有興趣的話再請各位自行研究其它兩種。   1. Action 可以沒有參數到 16個參數,沒有傳回值,範例如下透過泛型帶入2個參數 p1, p2 委託 ActionFunc 做為委託方法帶入函數 Test 中,根據帶入型別分別顯示出 "Hello World" & 17 的結果出來。   // T1 T2 為泛型參數定義  pubic static void Test<T1, T2>( Action action, T1 p1, T2 p2)  {      action (p1, p2);  }   public static void ActionFunc (string s, string h)  {        MessageBox.Show( s+h);  }   public static void ActionFunc (int s, int h)  {        MessageBox.Show( (s+h).ToString( ));  }     Test<string, string>(ActionFunc, "Hello", " World");   Test<int , int>(ActionFunc, 8, 9);     2. Func 一樣可以沒有參數到 16個參數,但必須有傳回值,範例如下透過泛型帶入2個參數 p1, p2 委託 FuncExample 做為委託方法帶入函數 Test 中,根據帶入型別一樣顯示出 "Hello World" & 17 的結果出來, 而其中須有回傳值設定(見紅字),最後透過 action(p1,p2) 回傳字串顯示 "OK String" & "OK int"。   // T1 T2 為泛型參數定義  pubic static void Test<T1, T2>( Func <T1, T2, ...