VS 2017中的元组语法

use*_*358 24 .net c# tuples c#-7.0

在VS2017 RC中,当您尝试使用新的元组语法时,您收到以下错误:

CS8179未定义或导入预定义类型'System.ValueTuple`X'

为了使用元组语法,您必须手动将ValueTuple nuget包导入到项目中.没什么大不了的,因为它是预发布版本,我认为它将在RTM中更改,因此它将默认启用.不幸的是,在最终版本中仍然如此,您必须为每个项目下载nuget包以使用元组语法.

有没有办法默认为每个项目启用元组语法?

Dan*_*ite 25

根据https://github.com/dotnet/roslyn/issues/13177,这些ITupleValueTuple类型将添加到".NET Framework 4.7之后的第一个版本"中的mscorlib中.根据.NET Framework 4.7发行说明,它已被添加.将其添加到4.6.x会破坏semver.因此,他们将类型提供为Nuget包,以便基于旧框架版本的项目可以使用它.

这类似于想要使用LINQ的.NET 2.0项目,扩展方法存在于System.Core中,而不是mscorlib.

您可以做的一个选项是在临时引用NuGet包的过程中创建自己的项目模板.

  • 如果您在.NET 4.5环境中运行,Microsoft.Bcl.Async`会将其所有调用转发到框架版本. (4认同)
  • @GrantWinney我猜测在那时刷新nuget引用会很聪明.从那里我会怀疑包裹会很空.也许只是一些类型转发信息. (2认同)