C#内置委托之Action与Func
在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(); } } }

浙公网安备 33010602011771号