.Net 之Tuple 类
Tuple是什么
按照Msdn 上说:提供用于创造元组对象的静态方法。从字面意思并不能理解他的作用;
Tuple 是个静态类,提供8个静态泛型方法;T 可以是值类型,也可是引用类型;
使用场景
C#语言中,相信大家对ref 和out。一定不陌生,就是一个函数需要返回多个值的时候,我们一般都采用Ref 或者Out ;
但是,在C# 编码最佳实践中,不建议用Ref 或者Out 来返回多个结果;这时Tuple 就派上用场了。Tuple将返回的结果打包一并返回给调用者;
这样就相当方便;
场景1
在MVC或者MVVM开发中,如果一个View 需要多个ViewModel的时候, 你就可以件ViewModel 一并打包到Tuple,然后返回给View
下面已MVC 为例, 我在这里简单设计,只是为了演示Tuple,在实际项目过程请参考最佳实际设计中。例如:
public class UserInfoViewModel
{
public string UserId{get;set;}
public string UserName{get;set;}
}
public class AddressViewModel
{
public string CityId{get;set;}
public string CityName{get;set;}
}
public calss UserController:Controller
{
public Action UserInfo()
{
var mTuple =new Tuple<UserInfoViewModel,AddressViewModel>();
// 构造UserInfoViewModel数据
// 构造AddressViewModel数据
return View(mTuple );
}
}
场景2
对于在数据导入的时候,我需要知道导入结果和导入失败结果;例如:
有下面这样一个函数:
private bool ImportData( string exlPath,out DataTable errDataTbl)
{
bool mImpResult=false;
try{
//导入操作
}
catch
{
// 记录导入错误数据行 ,将记录插入到 errDataTbl
}
return mImpResult;
}
但是如果使用 Tuple ,上面方法就改成:
private Tuple<bool,DataTable> ImportData( string exlPath)
{
var mTuple =new Tuple<bool,DataTable>();
try{
//导入数据操作
}
catch(){
/// 记录导入错误的数据
}
return mTuple ;
}
参考地址:MSDN 上Tuple类介绍
最新文章
- 安装dubbo管理中心
- NSString使用stringWithFormat拼接的相关知识
- 使用input range滑块,控制元素transform rotate旋转样式
- hiho一下120周 后缀数组一&#183;重复旋律
- 重构第10天:提取方法(Extract Method)
- sencha动态向容器里添加控件出现重叠问题
- Jquery 中toggle的用法举例
- (Problem 46)Goldbach&#39;s other conjecture
- 玩下Javascript
- Unity 相机的聚焦功能
- linuxDNS
- 目标检测(一) R-CNN
- HTML5入门教程:响应式页面布局
- SQL Server 商业智能
- 20145322 Exp5 MS08_067漏洞测试
- javascript数组操作(创建、元素删除、数组的拷贝)
- 设置VS2010和IE8 调试ATL控件<;转>;
- js 实现分享功能
- [转载] iOS应用程序的生命周期
- [洛谷P3332][ZJOI2013]K大数查询
热门文章
- showModalDialog改进版,包括Chrome下的特殊处理
- CentOS防火墙iptables-config的相关配置参数详解
- 【P2158】仪仗队&;欧拉函数详解
- webview 最简单的demo
- spring mvc 官方下载
- xenapi-add-support-for-vgpu
- Overlay网络与物理网络的关系
- 第一个Python程序hello.py提示出现File ";<;stdin>;";,line 1错误
- hdu 1846 Brave Game(bash)
- MySQL 分区知识点(一 )