Tuple 類別的使用
有時候呼叫一個方法需要一次回傳多個值回來,
通常我只能再創一個關連性不高、只是為了應付一次回傳多個值回來的class,
而該class在未來維護又遇到時,我會覺得很多餘,而且會突然想不出他是做什麼用的,
該必要的class想拿掉又不行,保留又會多花維護成本,
但有了「Tuple 類別」之後,則多多少少可以減輕維護負擔。
使用方式如下,看了一些說明文件看似很複雜,但實際操作起來很直覺、簡單。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var result1 = new Tuple<string>("a");
Tuple<string, string> result2 = new Tuple<string, string>("b", "c");
var result3 = new Tuple<string, string, string>("d", "e", "f");
var result4 = Tuple.Create("1", "2");
Console.WriteLine("result1.Item1 = {0}", result1.Item1);
Console.WriteLine("result2.Item1 = {0}, result2.Item2 = {1}", result2.Item1, result2.Item2);
Console.WriteLine("result3.Item1 = {0}, result3.Item2 = {1}, result3.Item3 = {2}", result3.Item1, result3.Item2, result3.Item3);
Console.WriteLine("result4.Item1 = {0}, result4.Item2 = {1}", result4.Item1, result4.Item2);
Console.ReadKey();
}
}
}
說明:
1、Tuple除了可使用建構函式新增物件外,還可使用另外一個Tuple靜態類別的Create方法來新增物件。
2、可以把Tuple類別想成是暫存類別,目地只是為了回傳帶有N個屬性的物件,
如果該物件有兩個屬性,則用屬性名稱Item1、Item2來存取他,最大可一次帶有八個屬性。
參考資料: