您的位置:首页 > 编程语言 > C#

C#高级功能(三)Action、Func,Tuple

2016-07-03 22:58 375 查看
Action和Func泛型委托实际上就是一个.NETFramework预定义的委托,3.5引入的特性。基本涵盖了所有常用的委托,所以一般不用用户重新声明。

Action系列泛型委托,是没有返回参数的委托,最多可以有16参数,也可以没有参数;Func系列的委托是有返回值的委托,最多可以有16个参数;

元组是C#4.0引入的一个新特性,编写的时候需要基于.NETFramework4.0或者更高版本。元组使用泛型来简化一个类的定义.

提供用于创造元组对象的静态方法。最多可以提供创建新的8元组,即八元组。

Action

publicdelegatevoidAction()


//voidmethod();
Actiontest1=()=>{Console.WriteLine("voidmethod();");};
//voidmethod(x);
Action<int>test2=(x)=>{Console.WriteLine("voidmethod(t1)");};
//voidmethod(x,y);
Action<int,int>test3=(x,y)=>{Console.WriteLine("voidmethod(t1,t2)");};


publicdelegatevoidAction<inT1,inT2,inT3,inT4,inT5,inT6,inT7,inT8,inT9,
inT10,inT11,inT12,inT13,inT14,inT15,inT16>()


Func

publicdelegateTResultFunc<outTResult>()


//intmethod();
Func<int>test4=()=>10;
//intmethod(x);
Func<int,int>test5=(x)=>x*2;
//intmethod(x,x);
Func<int,int,int>test6=(x,y)=>x*y;


publicdelegateTResultFunc<inT1,inT2,inT3,inT4,inT5,inT6,inT7,inT8,inT9,inT10,
inT11,inT12,inT13,inT14,inT15,inT16,outTResult>()


Tuple

publicstaticTuple<T1>Create<T1>(
T1item1
)
vartuple1=Tuple.Create(1);
Console.WriteLine(tuple1.Item1);//Displays1

vartuple1=newTuple<int>(1);
Console.WriteLine(tuple1.Item1);//Displays1


Tuple.Create<T1,T2,T3,T4,T5,T6,T7,T8>方法(T1,T2,T3,T4,T5,T6,T7,T8)

varprimes=newTuple<int,int,int,int,int,int,int,
Tuple<int>>(1,2,3,4,5,6,7,newTuple<int>(8));//元祖里面可以嵌套元祖




Tuple<int,int,int,int,int,int,int,Tuple<int,int,int>>test=

newTuple<int,int,int,int,int,int,int,Tuple<int,int,int>>(1,2,3,4,5,6,7,newTuple<int,int,int>(8,9));


//元祖准确的可以说是当做拥有多个返回值的一种方法,不用使用ref,out了,比较方便。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: