你能在 C# 7 中命名元组签名吗?

Can you name a Tuple signature in C# 7?

随着 C# 7 的实施,元组变得更加易于使用。事实上,我有一个案例,我将为几个方法使用相同的元组签名。

为了节省打字时间,我可以给它命名或别名吗? 还是我应该继续定义一个结构?

不,你不能创建别名。如果你想要某种 "short form" 你将需要定义一个实际类型并使用它而不是元组。

您可以像使用任何其他类型一样使用带值元组的别名:

> using T = System.ValueTuple<int, string>;    
> T t;
> t.Item1 = 1;
> t.Item2 = "one";

但这可能不是您要找的。那是因为元组值名称不在类型本身中,而是在变量和 return 值中。

对于变量,编译器会跟踪值名称。在 return 值的情况下,[System.Runtime.CompilerServices.TupleElementNamesAttribute] 属性用于将名称附加到 return 值。

阅读了更多现有的重复内容后,我认为应该提及一个重点: C# 7 中的元组是语法糖,使结构更易于一次性使用。

既然如此,如果一个特定的元组结构将被重用到需要一个名称的程度,那么完整的 Struct 语法将是合适的解决方案。