ValueTuple: what is wrong with creation of octuple?
valuetuple作为c 7.0中的一个新特性,具有公共方法
方法
1 2 3 4 | 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)); ; } |
现在,我尝试使用
1 2 3 4 | 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)); } |
这里怎么了?
另外,所有软件包都是最新的,我使用的是最新版本的Visual Studio 2017。
根据Svick的建议
2这将提示相同的编译器异常:
问题是,
1 2 3 4 | static ValueTuple<int, int, int, int, int, int, int, ValueTuple<int>> OctupleUsingCreate() { return ValueTuple.Create(1, 2, 3, 4, 5, 6, 7, 8); } |
或者您可以使用元组语法,但我假设您有理由避免它:
1 2 3 4 | static (int, int, int, int, int, int, int, int) OctupleUsingCreate() { return (1, 2, 3, 4, 5, 6, 7, 8); } |
注意:这不是ValueTuple库或C编译器的问题。Tryroslyn上没有错误:
2您需要将此包:microsoft.net.compilers更新为2.0(您需要显示预发布)。它可以修正错误,在这里检查这个