我刚刚安装了.net core 1.0并运行示例hello world。我的问题:C#6.0是否支持.net core或.net core响应更高版本的C#?
- 与.net core 1.0及其默认C#版本有任何关系吗?
- 如何通过任何命令行实用程序知道此.net核心安装的C#版本?
我刚刚安装了.net core 1.0并运行示例hello world。我的问题:C#6.0是否支持.net core或.net core响应更高版本的C#?
差更.Net Core
和全.Net Framework
,含义之间,你就可以使用相同的语法,但你会发现在类,你可以/不能使用的差异,有时,在你使用它们的方式。
虽然某些语言功能确实需要框架功能,但语言本身通常并不与特定的运行时/框架绑定。 (例如,内插的字符串上.NET 4.6比NET 2.0更灵活一点由于FormattableString
存在下进行。)然而,还有需要考虑两件事情:
dotnet cli
)的SDK支持C#编译器包的版本支持C#6开箱。我会亲自期望 Roslyn软件包的C#7版本以支持.NET Core(例如,针对netstandard1.5
),因此在执行时编译更多代码的代码在这方面应该没问题。我不知道在将编译器版本绑定到SDK版本方面计划是什么 - 我怀疑当project.json到msbuild转换完成时会变得更清晰。
我不知道有什么方法可以确定特定SDK支持哪些语言版本 - 可以很容易地创建一系列运行特定语言功能的小类,并查看它们是否编译, 当然。 Trickier将会提出构建多个版本的代码,但会给出不同的结果;在连续的语言版本(至少2-3,3-4,4-5 ...不确定5-6)之间可以这样做,但它们稍微复杂一些。
针对C#编译器的'autoconf'样式特征检测;-) –
.NET核心1.0附带C#6你可以看到,在参考文献:
Microsoft.CodeAnalysis
*是的NuGet包的C#编译器。版本1.x对应于C#6,并且2.x(当前处于测试版)为C#7.
您也可以在NuGet上看到这种依赖关系:Microsoft.NETCore.App。
当C#7出来时,可能会通过将其包添加到.NET Core项目来使用新编译器。
好的,但问题不在于此。 – boj