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

你能用C#7命名元组签名吗?,c#,tuples,c#-7.0,C#,Tuples,C# 7.0,随着C#7的实现,元组的使用变得更加容易。事实上,我有一个例子,我将对一些方法使用相同的元组签名 为了节省打字时间,我可以给它命名或别名吗? 或者我应该继续定义一个结构吗?不,您不能创建别名。如果需要某种“简短形式”,则需要定义一个实际类型,并使用该类型而不是元组。可以将alias与值元组一起使用,就像使用任何其他类型一样: > using T = System.ValueTuple<int, string>; > T t; > t.Item1 = 1; &

随着C#7的实现,元组的使用变得更加容易。事实上,我有一个例子,我将对一些方法使用相同的元组签名

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

不,您不能创建别名。如果需要某种“简短形式”,则需要定义一个实际类型,并使用该类型而不是元组。

可以将alias与值元组一起使用,就像使用任何其他类型一样:

> using T = System.ValueTuple<int, string>;    
> T t;
> t.Item1 = 1;
> t.Item2 = "one";
>使用T=System.ValueTuple;
>T;
>t.1项=1;
>t.Item2=“一”;
但那可能不是你想要的。这是因为元组值名称不在类型本身中,而是在变量和返回值中


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

阅读了更多现有副本后,我认为有一点应该提到: C#7中的元组是语法糖,使结构更易于一次性使用


在这种情况下,如果元组的特定结构要被重用到需要一个名称的程度,那么完整的结构语法将是合适的解决方案。

可能重复的名称现在不能使用别名,因为它们只是编译器的魔法,而不是类型的一部分。副本解释说这将与记录一起使用,这些记录被移动到C#8在我的情况下,它只在一个类文件中使用一次,但是
(TileColor,TileComponents)
TileSide
更容易反复键入。