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
Func
Tuple
//元祖准确的可以说是当做拥有多个返回值的一种方法,不用使用ref,out了,比较方便。
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了,比较方便。
相关文章推荐
- When to Use Static Classes in C#
- 【C#】Excel导出合并行和列并动态加载行与列
- 追踪监听(TraceListener)
- 使用跟踪和调试进行条件编译
- C# 文件操作 把文件读取到字节数组
- C#中Invoke的用法
- C#笔记(二)
- C# 调用cmd命令
- C# LDAP认证登录类参考
- 检测和跟踪的介绍
- 配置跟踪开关
- c#跟踪
- c#之跟踪(c#高级编程系列)
- C#教程之打印和打印预览
- C#中的委托使用
- c#中 split用法
- c#通用登录模块分享
- C#中关闭第一个Form窗口,打开另一个新窗口方法
- c#实现关闭当前窗体并打开另一个已经创建的窗体
- C#.NET文件流的输入和输出