你能用C#7命名一个元组签名吗?

时间:2017-04-26 00:12:09

标签: c# tuples c#-7.0

随着C#7的实施,元组更容易使用。事实上,我有一个案例,我会在几种方法中使用相同的元组签名。

为了节省打字,我可以命名或别名吗? 或者我应该继续定义一个结构?

3 个答案:

答案 0 :(得分:2)

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

在这种情况下,如果元组的特定结构将被重用足以需要名称,那么完整的Struct语法将是适当的解决方案。

答案 1 :(得分:1)

不,你不能别名。如果你想要某种"简短形式"您将需要定义一个实际类型并使用它而不是元组。

答案 2 :(得分:1)

您可以将别名与任何其他类型的值元组一起使用:

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

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

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