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 今天给大家分享的内容基于前几天收到的一条留言信息,留言内容是这样的: 看了这位网友的留言相信有不少刚接触开发的童鞋们也会有同样的困惑,除了用新建类作为桥梁之外还有什么好的办 ...
随机推荐
- 读取数据表中第m条到第n条的数据,SQL语句怎么写?
原文:读取数据表中第m条到第n条的数据,SQL语句怎么写? 对于MySQL或者Oracle来说,如果实现从Table 表中取出第 m 条到第 n 条的记录操作,我们需要TOP函数(不是所有的数据库都支 ...
- 【转向Javascript系列】从setTimeout说事件循环模型
本文首发在alloyteam团队博客,链接地址http://www.alloyteam.com/2015/10/turning-to-javascript-series-from-settimeout ...
- 关于SVN配置文件的一个小例子
1 背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式 ...
- hibernate之关于使用连接表实现多对一关联映射
[Hibernate]之关于使用连接表实现多对一关联映射 在我们项目使用中採用中间表最多的一般就是多对一,或者是多对多,当然一对一使用中间表也是能够的,可是这样的几率通常少之又少!所以这里重点介绍多对 ...
- jenkins配置.net mvc网站
jenkins配置.net mvc网站 上一篇使用jenkins配置.net mvc网站进行持续集成一只是简单介绍了jenkins构建站点到本地服务器,这一篇,就来讲解如何部署站点到指定的服务器上面. ...
- Google的Guava它Collection升华
至于Guava这是不是在这里说.一个已被提上一个非常特殊的! 这主要是为了分享Guava对于一些升华处理组.井,不多说了,直接在代码: package com.joyce.guava.bean; /* ...
- CentOS下tmux安装与使用
tmux介绍: tmux它是BSDScreen替代品,相对于Screen,它更加先进:支持屏幕切分,并且具备丰富的命令行參数,使其能够灵活.动态的进行各种布局和操作.它能够做到一条命令就启动起来(强大 ...
- Asp.net获取用户名和IP
1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.Use ...
- Linux高性能server规划——多进程编程
多进程编程 多进程编程包含例如以下内容: 复制进程影映像的fork系统调用和替换进程映像的exec系列系统调用. 僵尸进程以及怎样避免僵尸进程 进程间通信(Inter-Process Communic ...
- Lua 服务器与客户端实例(转)
=============================================================== 服务器,main.lua ======================= ...