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

4
我看到了这段代码 -
(int, int) x = (10, 10);

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


2
这是一个 ValueTuple<int, int>,这是一种简写方式,相当于 ValueTuple<int, int> x = new ValueTuple<int, int>(10, 10) - MindSwipe
1
这篇文章可能值得一读:https://dev59.com/C1YN5IYBdhLWcg3w9Mfr#46602134。 - mjwills
1个回答

8
您手头的是一个 ValueTuple

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

它们是在 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;

你可以在这个问题中了解有关ValueTuple别名的工作原理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接