微軟從Visual Studio 2019第四預覽版以及候選版開始,對C#版本以及工具進行調整。現在C#的語言版本(LangVersion)增加了最新主要版本(LatestMajor)以及預覽版(Preview),因此除了原先的最新(Latest)版本,提供最新的主要以及次要更新外,最新主要版本只提供C#最新的主要更新,而預覽版則提供C#的預覽功能。

當開發者沒有指定語言版本時,則預設的版本值現在由專案中的開發框架決定,也就是說,假設專案的目標框架使用C#預覽版,而同時也存在相對應的預覽版C#,則預覽版便為預設使用的版本,但是當使用者沒有指定預覽版框架時,系統便會使用最新版本。

因此微軟提到,針對Netcoreapp3.0預覽版或是Netstandard2.1預覽版,預設的C#語言版本為預覽版,使用者可以利用的C# 8.0預覽版功能,將完全根據使用的編譯器版本以及.NET SDK,因此隨著未來使用更新的預覽版時,可以獲得的功能也會更多。

而在.NET開發框架方面,預設的C#語言版本則是最新版本,所以所有使用的C# 8.0功能,都會出現編譯錯誤,Visual Studio工具會跳出快速修復提示,要求開發者更改專案或是解決方案的語言版本,藉此解決遭遇到的問題。而針對Netcoreapp3.0或是Netstandard2.1預覽版跟.NET並存的情況下,系統將會選擇使用最新版的C#。

目前Visual Studio 2019預設使用的C#版本,相當於最新主要版本,微軟解釋,第一個原因是,現在C#的更新正處於兩個Visual Studio發布周期之間,但是Visual Studio的新專案仍然預設使用較舊版的C#,第二個原因則是,對於使用.NET Core 3.0預覽版的專案,使用C# 8.0是更好的選擇,但是無法不在專案預設使用.NET Core 3.0預覽版的情況下,使C# 8.0成為預設值。

微軟預告,C# 8.0以及.NET Core 3.0將會一起釋出正式版,因此到時候,語言版本的最新版以及最新主要版本都會是C# 8.0,而預覽版則未定,當開發者沒有指定專案語言版本,則一率被視為使用最新的版本C# 8.0正式版。

微軟希望在發展C#以及.NET Core新功能的同時,讓開發者趕快跟上開發的腳步,無縫的使用這些新功能,當開發者在開發生命周期初期接觸這些功能,就能拉長新功能回饋的時間區間。微軟提到,所有的C# 7.3以及更低版本都能在Visual Studio 2019相容,功能及行為都沒有改變,但是也提醒,當開發者在使用C# 8.0預覽功能時要注意,預覽版本間不保證相容,在未來功能行為可能隨時會改變。


Advertisement

更多 iThome相關內容