Visual Studio 2019之讓我們統一代碼風格吧
問題
在之前介紹VS2019的一鍵清理的文章當中,我們提到了一個問題,即Apply implicit/explicit type preferences到底是使用哪一個呢?
Apply implicit/explicit type preferences?到底用哪一個呢
首先我們來看一下,這條規則是用來解決什么問題的。下面的兩條代碼中,你比較喜歡那種風格呢?

Implicit & Explicit Type
第一行代碼是explicit type,第二行代碼是implicit type。這里不對這兩種風格的優劣進行討論,因為不同的人可能有不同的喜好。知道了二者的區別之后,我們看一看Apply implicit/explicit type preferences的fix結果是什么樣子的?默認的執行結果如下圖所示:

VS2019默認Apply Explicit type
通過實驗可以看出,代碼清理默認將implicit type轉換為了explicit type。原因是什么呢?這就涉及到今天我們要討論的問題,VS2019之代碼風格 (Code Style)。本文不對代碼風格進行討論,請根據自己或團隊的開發習慣制定代碼風格。
Code Style設置
· Ctrl+Q,輸入"C# code style",會打開下面的對話框。對Ctrl+Q不了解的小伙伴可以看看之前我的文章, Visual Studio 2019之你還在手工清理代碼嗎?
可以看到,VS2019將explicit type設置為了默認,這也是為什么我們上面的演示當中,var會被一鍵修改為int類型。你可以在這里將"Prefer explicit type"改為"Prefer 'var'"(如下圖所示),那么int會被自動修改為var類型
VS2019給出了許多Preferences設置,并給出了代碼對相應的設置進行了解析。C#開發可以根據自己的需要進行設置。
Code Style的嚴重等級
除了可以設置我們更喜歡哪種代碼風格之外,還可以設定如果違反了這種代碼風格那么VS2019會給出什么相應的反饋。相應的級別有
- Refactoring Only
- Suggestion
- Warning
- Error
如下圖所示。
設置嚴重等級
如果我們將"Prefer compound assignments"設置為"Error",那么下面的代碼中就會出現Error的提示,如下圖所示。此時點擊下圖中的"Use compound assignment",VS會自動將代碼改為compound的模式。
沒有使用compound assignments會被當做錯誤
從UI到文件
進行團隊開發的小伙伴可能已經想到,如果我們能夠把這些UI設置保存在文件當中,那么就有可能在團隊當中通過共享這個文件來統一代碼風格。VS2019為我們提供了這個功能。
導出UI設置到文件
點擊上圖的"Generate .editorconfig file from settings",可以根據你的UI配置生成一個配置文件。默認存在你項目的根目錄。打開這個文本文件,可以看到剛才的設置:
Code Style配置文件
有了這個文件之后,可以將它同源代碼文件一樣保存在代碼管理平臺,比如Git。這樣整個團隊就能夠確保代碼風格一致了。