在研究反編譯的 C# 7 函式庫時,可能會遇到 ValueTuple 泛型的使用。了解 ValueTuples 的用途及其相對於傳統元組的優勢至關重要。
主要差異:
ValueTuples 的基本原理:
ValueTuples 簡介在C# 7 中,是出於效能考量:
自動相等: 結構固有的最佳化平等,使ValueTuples 高效
語法便利:
該語言引入了語法糖來簡化元組的處理,使它們的使用更加直觀。public (int sum, int count) DoStuff(IEnumerable<int> values) { var res = (sum: 0, count: 0); foreach (var value in values) { res.sum += value; res.count++; } return res; }
var result = DoStuff(Enumerable.Range(0, 10)); Console.WriteLine($"Sum: {result.sum}, Count: {result.count}");範例:
ValueTuple<int, int> valueTuple = DoStuff(Enumerable.Range(0, 10)); Console.WriteLine(string.Format("Sum: {0}, Count: {1})", valueTuple.Item1, valueTuple.Item2));示範的用法和好處ValueTuples:
使用分解:
或使用新變數:編譯器實作: 編譯器產生在內部利用 ValueTuple 欄位的程式碼,同時提供命名參數存取以便直覺使用。 結論:ValueTuples 由於其值類型性質、可變性和語法糖而比傳統元組具有顯著的性能和便利性優勢.
以上是C# 中的 ValueTuple 與 Tuple:主要性能和設計差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!