【发布时间】:2021-04-08 23:14:12
【问题描述】:
我在 VS2013(框架 4.5)中创建的项目中有一个测试工具。为了测试 VS2019 的内容,我添加了一个本地函数(来自 C# 7)。该项目仍然以 4.5 为目标,但它编译和运行时没有任何错误。这不好 - 我希望人们能够在 VS2013 中进行编辑,如果这是他们获得的版本。告诉我我在这里遗漏了一些简单的东西。
static void Main(string[] args) { string LocalFunction() { return "yeah, im local, dude."; } Console.WriteLine(LocalFunction()); Console.ReadKey(); }
【问题讨论】:
-
Language version(C# 版本)和 Target Framework 版本是两个不同的东西。
-
4.5 与早期版本的框架保持一致,所以.. 你有解决这个问题的办法吗?
-
c# 7.0 本地函数只是语法糖,因此可以为早期框架编译包含它们的 c# 代码。请参阅:Does C# 7.0 work for .NET 4.5?。要禁用对后续 c# 语言功能的支持,请在 Directory.Build.props 中设置
<LangVersion>5</LangVersion>,如 How to change C# Language Version for all of the projects in my solution in one place? 和 docs.microsoft.com/en-us/dotnet/csharp/language-reference/… 所示。
标签: c# visual-studio