我在 Visual Studio 2017 RC 中创建了一个项目,以检查是否可以在 .NET Framework 4.5 项目中使用新的 C# 7.0 语言功能。在我看来,参考后System.ValueTuple
NuGet,新元组工作正常。还有什么我应该考虑的吗?或者这会起作用吗?
检查后System.ValueTuple
NuGet 依赖项,看起来不支持 .NET Framework 4.0。是这样吗,或者是否有某种方法可以使新语言也在此运行时中工作?
让我们来回顾一下C# 7.0 中的新功能:
-
Tuples: The System.ValueTuple package有一个版本portable-net40+sl4+win8+wp8
轮廓。这意味着它可以在 .Net 4.0 上使用。 (不确定为什么依赖项仅列出 .Net 4.5。)
如果您想在更低版本的 .Net 上使用元组,它应该仍然可以工作,只要您添加的代码ValueTuple及相关类型到你的项目。
-
out
变量、模式匹配、局部函数、更多表达式体成员、throw
表达式、数字文字语法改进:所有这些功能都只是语法糖,因此它们不需要框架中的任何新功能。
-
ref
局部变量和返回值:此功能在 C# 中公开了框架从一开始就支持的内容,因此这里也不需要对框架进行任何更改。
-
通用异步返回类型:要使用此功能,您需要一个具有以下功能的类型AsyncMethodBuilder
属性,它位于the System.Threading.Tasks.Extensions package(连同这样一种类型,ValueTask<T>
)。该包仅在 .Net 4.5 上受支持,因此对于 .Net 4.0,您需要编译相关类型你自己。 (使用await
在.Net 4.0上还需要Microsoft.Bcl.Async
,但这不是什么新鲜事。)
总结一下:安装所需的包后,所有 C# 7.0 都应该可以在 .Net 4.5 上运行,并且其中大部分也应该可以在 .Net 4.0 上运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)