在Visual Studio(目前使用2017)中,您可以选择目标框架。
但是您也可以在“高级构建设置”->“语言版本”中选择语言设置:
我可以将Target框架设置为4.7,将语言版本设置为 4。 7.2
这与将目标框架设置为4.7.2一样吗?
有什么区别?
答案 0 :(得分:2)
.NET框架具有与C#语言不同的版本历史记录。例如,该框架定义了类库中存在哪些类。
C#语言版本定义了您可以使用的语法。例如,在第二版中,该语言为泛型,在3.0版中,该语言为 Linq ,依此类推。没有语言版本4.7.2,即最新的.NET框架的版本名称。如果您从语言版本下拉菜单中选择,您应该可以看到例如3.0、4.0、5.0、6.0、7.0、7.1、7.2和7.3(最新)。
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history
所谓的“完整” .NET框架的通用框架版本是
4.0、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7、4.7.1、4.7.2。
https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies
您可以说语言版本仅在编译时适用。目标框架决定了应用程序的消费者将需要哪种框架。如果您以4.6版框架为目标,那么消费者将需要 至少是那个框架。
请注意,.NET核心/标准之类的概念在某种程度上混淆了框架的选择,但我认为这超出了问题的范围。