zoukankan      html  css  js  c++  java
  • .Net 之Tuple 类

    Tuple是什么

    按照Msdn 上说:提供用于创造元组对象的静态方法。从字面意思并不能理解他的作用;

    Tuple 是个静态类,提供8个静态泛型方法;T 可以是值类型,也可是引用类型;

    image

    使用场景

    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类介绍

  • 相关阅读:
    纸上谈兵:最短路径与贪婪算法
    “不给力啊,老湿!”:RSA加密与破解
    纸上谈兵:拓扑排序
    Homebrew 安装使用
    Servlet详解
    搭建SpringMVC
    设置IDEA智能感知支持Jsp内置对象
    素材网站
    常用单词
    常见异常
  • 原文地址:https://www.cnblogs.com/DripRoad/p/5537661.html
Copyright © 2011-2022 走看看