程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .Net 之Tuple 類

.Net 之Tuple 類

編輯:關於.NET

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類介紹

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved