在C#中(数据类型,数据类型)x =(值,值)是什么意思? x的实际数据类型是什么?

时间:2019-03-29 06:45:05

标签: c# .net

我遇到了这段代码-

(int, int) x = (10, 10);

是什么意思? x到底是什么?

1 个答案:

答案 0 :(得分:8)

您有ValueTuple

  

元组是一种具有特定数量和元素顺序的数据结构。元组的示例是具有三个元素(称为三元组或三元组)的数据结构,该数据结构用于存储标识符,例如在第一个元素中存储人的姓名,在第二个元素中存储年份和人的收入该年度中的第三个元素。

它们是C#7中引入的。

另一种写法是这样的:

ValueTuple<int, int> x = (10, 10);

甚至:

ValueTuple<int, int> x = new ValueTuple<int, int>(10, 10);

您可以这样访问值:

int val1 = x.Item1;
int val2 = x.Item2;

您还可以为它们加上别名,然后按名称访问值:

(int A, int B) x = (10, 10); // or  var (A, B) = (10, 10);
int a = x.A;
int b = x.B;

您可以在this question中了解有关ValueTuple别名的工作方式。