Tuple
Tuple(组元)是C# 4.0引入的一个新特性,编写的时候需要基于.NET Framework 4.0或者更高版本。
在以前编程中,当需要返回多个值得方法中,常常需要将这些值放置到一个结构体或者对象中进行返回,当然也有以out/ref参数进行传递的。但是总的来说并不能真正的符合编程的需要。从而引入Tuple。
Tuple的简单使用:
private Tuple<bool, object, string> GetObject()
{
bool result=false;
object obj=null;
string message=string.Empty;
try
{
//TODO相应的操作(例如查询获取对象)给obj赋值 obj=Query();
message="查询成功";
result=true;
}
catch(Exception ex)
{
message="查询失败";//对异常进行处理,而不是返回ex.ToString()或者ex.Message
}
return new Tuple<bool, object, string>(result, obj, message);
}
但是当程序需要转到.net 4.0之下时就不能使用Tuple了。不过觉得这个Tuple比较实用。所以自己动手写了一个,才发现其实这个还是比较简单的。
#region 自定义数据结构体 一般用于数据返回处理
public class TupleBase<T>
{
private readonly T item1 = default(T);
public T Item1
{
get { return item1; }
}
public TupleBase(T t)
{
item1 = t;
}
} public class TupleBase<T1, T2> : Tuple<T1>
{
private readonly T2 item2 = default(T2);
public T2 Item2
{
get { return item2; }
}
public TupleBase(T1 t1, T2 t2)
: base(t1)
{
this.item2 = t2;
}
}
public class TupleBase<T1, T2, T3> : TupleBase<T1, T2>
{
private readonly T3 item3 = default(T3);
public T3 Item3
{
get { return item3; }
}
public TupleBase(T1 t1, T2 t2, T3 t3)
: base(t1, t2)
{
this.item3 = t3;
}
} public class TupleBase<T1, T2, T3, T4> : TupleBase<T1, T2, T3>
{
private readonly T4 item4 = default(T4);
public T4 Item4
{
get { return item4; }
}
public TupleBase(T1 t1, T2 t2, T3 t3, T4 t4)
: base(t1, t2, t3)
{
this.item4 = t4;
}
}
public class TupleBase<T1, T2, T3, T4, T5> : TupleBase<T1, T2, T3, T4>
{
private readonly T5 item5 = default(T5);
public T5 Item5
{
get { return item5; }
}
public TupleBase(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
: base(t1, t2, t3, t4)
{
this.item5 = t5;
}
}
#endregion
以上只是以对象的形式建立,当然也有的说以结构体的形式进行组装Tuple的。结构体是值类型的,而且其没有继承,我对这个还是没有太大想法。
Tuple的更多相关文章
- 【.NET深呼吸】元组数据(Tuple)
各位观众,大家好,欢迎收看由火星电视台直播的<老周吹牛>节目,注意:本节目没有任何技术含量,如果您没有兴趣,请砸掉电视机. 今天说一下System命名空间下的一个数据类型——Tuple,翻 ...
- python之最强王者(7)——元组(tuple)
1.序列(sequence): 说明:在前面的字符串列表中其实我们已经用到了序列,之所以放到这篇来讲主要是为了承上启下,方便理解和记忆. python的数据访问模型:直接存取 ,序列 ,映射 对非容器 ...
- tuple放入dict中
tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...
- list,tuple,dict,set常用方法
Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
- c# 元组Tuple
Tuple类型像一个口袋,在出门前可以把所需的任何东西一股脑地放在里面.您可以将钥匙.驾驶证.便笺簿和钢笔放在口袋里,您的口袋是存放各种东西的收集箱.C# 4.0引入的一个新特性 Tuple类型与口袋 ...
- Python_Day_03 list,dic,tuple方法总结
编程语言中最长见的几种数据类型,字典,列表,等.同样在Python中也有这些数据类型,只是有些表现形式不同.同时在Python中又多了一种叫做元组(tuple)的东西. list(列表) 初始化列表 ...
- python-list tuple dict set
1:删除一个列表末尾的元素 pop方法 >>> a [1, 'Jack', 2, 3, 2] >>> a.pop() >>> a [1, 'Jac ...
- List tuple 类型转成数组
SKlearning大部分的输入数据都是M * N数组. 然而我们从数据库或文件读取得来的通常是Python内定的类型tuple或list 它们的优势就不说了,但是直接把list或tuple构成的二维 ...
- 浅谈Tuple之C#4.0新特性那些事儿你还记得多少?
来源:微信公众号CodeL 今天给大家分享的内容基于前几天收到的一条留言信息,留言内容是这样的: 看了这位网友的留言相信有不少刚接触开发的童鞋们也会有同样的困惑,除了用新建类作为桥梁之外还有什么好的办 ...
随机推荐
- Jersey框架三:Jersey对HTTPS的支持
Jersey系列文章: Jersey框架一:Jersey RESTful WebService框架简介 Jersey框架二:Jersey对JSON的支持 Jersey框架三:Jersey对HTTPS的 ...
- Eclipse上运行Python,使用PyDev
转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-pydev/index.html 级别: 初级 郑 伟芳 (zhengwf@c ...
- Get与Post的差别
Http定义了与server交互的不同方法,最主要的方法有4种,各自是GET,POST.PUT,DELETE. URL全称是资源描写叙述符.我们能够这样觉得:一个URL地址,它用于描写叙述一个网络上的 ...
- 纯CSS滑动效果
原文地址:Pure CSS Slide Up and Slide Down 示例地址:Pure CSS Slide Demo 原文日期: 2013年08月26日 翻译日期: 2013年08月27日 如 ...
- Linux php/php-fpm 安装,配置
1> 下载php源代码 #wget http://cn2.php.net/get/php-5.4.30.tar.gz/from/this/mirror 官网5.2的版本号貌似没提供 ...
- MYSQL中取当前年份的第一天和当前周,月,季度的第一天/最后一天
mysql 获取当年第一天的年月日格式:SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY); MySQL里获取当前week.month ...
- CENTOS安装部署zabbix
果学网 -专注IT在线www.prismcollege.com 參考原文:http://www.showerlee.com/archives/13 RHCE过的EMAIL已经下来.所以近期闲了就准备把 ...
- hdu1520 (树形dp)
hdu1520 http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意是给定一棵树,每个结点有一个价值,要我们选择任意个结点使得总价值最大,规则是如果父亲结 ...
- Eclipse4.4.2手动安装Veloeclipse-2.0.8
引言: 新安装了Eclipse最新版本 4.4.2 Luna(月神),由于项目中使用到了模板引擎Velocity,所以想安装一个Velocity插件, 在网上找了一下,看到Google的vel ...
- 重新想象 Windows 8 Store Apps (9) - 控件之 ScrollViewer 基础
原文:重新想象 Windows 8 Store Apps (9) - 控件之 ScrollViewer 基础 [源码下载] 重新想象 Windows 8 Store Apps (9) - 控件之 Sc ...