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 今天给大家分享的内容基于前几天收到的一条留言信息,留言内容是这样的: 看了这位网友的留言相信有不少刚接触开发的童鞋们也会有同样的困惑,除了用新建类作为桥梁之外还有什么好的办 ...
随机推荐
- 蓝桥杯软件学院webserver,android
- 逆向 Framework.jar
Ref:http://www.addictivetips.com/mobile/what-is-odex-and-deodex-in-android-complete-guide/ Ref:http: ...
- 4句代码读取Excel到DataSet(非Excel组件)
Toxy是继NPOI之后主推的还有一个项目,主要目的是为了解决文档的抽取问题.其支持的格式包括全部docx.xlsx.xls.csv.vcard等. 以下是一个简单但非常实用的样例 ParserCon ...
- SWT的ListVierer的使用
package com.test; import java.util.ArrayList; import java.util.List; import model.People; import org ...
- Codefirst
新建控控制台程序 nuget 输入Install-Package EntityFramework 回车: Program.cs只 添加 using ConsoleApplication18.Mig ...
- 解决vmware卡的要死
如题: 一般而言虚拟机不会卡的.CPU跟随你的操作而增减,内存设置vmware的推荐值就好.遇到卡的情况,检查一下如下情况. 两个方法: 1>内存分配最好是1G,512少了点 2>虚拟机的 ...
- 很实用的FTP操作类
using System; using System.Net; using System.Net.Sockets; using System.Text; using System.IO; using ...
- 怎样获取android手机联系人并按字母展示(一)
android提供了本地数据库的查询uri,能够查询出数据: 採用一个AsyncQueryHandler来进行查询, AsyncQueryHandler自己开启了线程来进行数据查询,非常方便 prot ...
- 使用NSCondition实现多线程同步
iOS中实现多线程技术有非常多方法. 这里说说使用NSCondition实现多线程同步的问题,也就是解决生产者消费者问题(如收发同步等等). 问题流程例如以下: 消费者取得锁,取产品,假设没有,则wa ...
- Case when 的使用方法
SQL Case when 的使用方法 Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THE ...