📜  C#|价值元组<T1>结构(1)

📅  最后修改于: 2023-12-03 15:00:15.349000             🧑  作者: Mango

C# | ValueTuple结构

ValueTuple 是 .NET Framework 4.7 和 C# 7.0 中新增的类型,被称为“价值元组”,因为它们是在栈上分配的元组。

ValueTuple 结构是 Tuple 类的一个特殊实例,它裁剪了元组功能,只提供一个元素。

语法
public struct ValueTuple<T1> : IEquatable<ValueTuple<T1>>
示例

以下示例展示了如何声明一个 ValueTuple 实例:

ValueTuple<int> valTuple = ValueTuple.Create<int>(10);
Console.WriteLine(valTuple.Item1); // 输出:10

使用元组标记(( ))可以更简洁地声明 ValueTuple 实例:

var valTuple = (10);
Console.WriteLine(valTuple.Item1); // 输出:10

注意,这里的 var 关键字并不是将 valTuple 的类型声明为 ValueTuple<int>,而只是由编译器推断出 valTuple 的类型。

特点
  • 避免不必要的堆分配。
  • 提高了性能,在某些情况下比元组要快。
  • ValueTuple 不可改变,意味着它们是只读结构,不能在定义后添加、删除或更改元素。
  • 由于 ValueTuple 是值类型,所以不需要进行垃圾回收。
总结

ValueTuple 引入了更简洁、更高效的元组类型,在 C# 中提供了更好的编程体验。ValueTuple 结构提供了一个单元素元组,这是一个独立的类型,可以更好地控制内存使用。如果需要使用元组类型而不想在堆上分配内存,则应该使用 ValueTuple。