C#內建委託之Action與Func
阿新 • • 發佈:2018-12-09
在C#語言的using system的名稱空間下,有兩個內建委託:Action與Func
1.Action委託(都沒有返回值):
Action:無參,無返回值; Action<T>:有引數T(1~16 個),無返回值;
2.Func委託(都有返回值):
Func<T>:無參,返回值為T;
Func<T1,T2,T>:有引數T1,T2(1~16個),返回值為T
程式碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace actionAndFunc { class Program { static void Main(string[] args) { //定義Action委託,無引數,無返回值 Action act01; //使用Lambda表示式新增方法語句塊 act01 = () => Console.WriteLine("我是Action無引數的委託"); act01(); //定義Action委託,有1個引數,無返回值 Action<int> act02; act02 = (int a)=>Console.WriteLine("我是Action有1個引數的委託{0}",a); act02(666); //定義Action委託,有2個引數,無返回值 Action<int, string> act03; act03 = (int a, string str) => { Console.WriteLine("我是Action有2個引數的委託,第一個引數是{0},第二個是{1}",a,str); }; act03(666,"sixsixsix"); Console.WriteLine("-----------------------------------------------------------------"); Console.WriteLine("-----------------------------------------------------------------"); //定義Func委託,沒有引數,返回值是int Func<int> func01; func01 = () => { Console.Write("一個無引數的Func委託,返回值是:"); return 666; }; var temp = func01(); Console.WriteLine(temp); //定義Func委託,有兩個string引數,返回值是int,注意返回值是在<>的最後一個 Func<string, string, int> func02; func02 = (string str01, string str02) => { Console.Write("{0}一個無引數的Func委託{1},返回值是:",str01,str02); return 666; }; var Temp = func02("我是","型別"); Console.WriteLine(Temp); Console.ReadKey(); } } }