我剛剛安裝了.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