C# 7.0 (.NET Framework 4.7)居然來了偷吃步升級版,使用上比 Tuple 更便利且好閱讀。
使用方法:
建立 Tuple & 取值
- Item 沒給名稱
//建立Tuple
//方法一:使用Tuple建構子
var authorInfo = new ValueTuple<string, DateTime>("AMA", new DateTime(2022, 1, 1));
//方法二:使用Create方法
var authorInfo = ValueTuple.Create("AMA", new DateTime(2022, 1, 1));
//方法三:弱型別(隱含型別)
var authorInfo = ("AMA", new DateTime(2022, 1, 1));
//方法四:強型別
(string, DateTime) authorInfo = ("AMA", new DateTime(2022, 1, 1));
//取Tuple值
Console.Write(authorInfo.Item1);//AMA
Console.Write(authorInfo.Item2);//2022/01/01
- Item 給予名稱
//方法一:使用小括號,等號左邊給予item名稱
(string name, DateTime birth) authorInfo = ("AMA", new DateTime(2022, 1, 1));
//方法二:使用小括號,等號右邊給予item名稱
var authorInfo = (name: "AMA", birth: new DateTime(2022, 1, 1));
////取Tuple值
////還是可以用Item取值
Console.Write(authorInfo.Item1);//AMA
Console.Write(authorInfo.Item2);//2022/01/01
////用名稱取值
Console.Write(authorInfo.name);//AMA
Console.Write(authorInfo.birth);//2022/01/01
- 用於 method
//method 回傳型態沒名稱,取資料時可自行給定名稱
var (name, birth) = GetAuthorInfo();
//tuple type
private (string, DateTime) GetAuthorInfo()
{
return ("AMA", new DateTime(2022, 1, 1));//tuple literal
}
//不需要的成員可用棄元(Discards)
var (name, _) = GetAuthorInfo();