ValueTuple 作为 C# 7.0 中的一个新特性,它具有Create
有助于创建 ValueTuple(来自singleton to octuple
或更多)的公共方法,另一方面,我们也可以使用它new
来实现相同的结果。我注意到这些行为不同。我正在尝试研究以下实现错误,或者这是按照设计:
方法CreateOctuple()
按预期工作:
private static ValueTuple<int, int, int, int, int, int, int, ValueTuple<int>> CreateOctuple()
{
return new ValueTuple<int, int, int, int, int, int, int, ValueTuple<int>>(1, 2, 3, 4, 5, 6, 7, new ValueTuple<int>(8)); ;
}
现在,我尝试使用Create()
方法实现相同的输出,不幸的是,它抱怨返回类型:
private static ValueTuple<int, int, int, int, int, int, int, ValueTuple<int>> OctupleUsingCreate()
{
return ValueTuple.Create(1, 2, 3, 4, 5, 6, 7, ValueTuple.Create(8));
}
PS 所有软件包都是最新的,我使用的是 Visual Studio 2017 最新版本。
正如斯维克所建议的那样
static ValueTuple<int, int, int, int, int, int, int, ValueTuple<int>> OctupleUsingCreate()
{
return ValueTuple.Create(1, 2, 3, 4, 5, 6, 7, 8);
}