在 .NET Core foundational libraries項目使用的編程規範默認就是 VisualStudio 默認樣式。html
花括號使用 Allman style 風格,全部的花括號在新的一行開始。git
關於 Allman style 就是以下,花括號放在下一行,並且花括號不進行縮進,花括號裏面的代碼縮進。github
while (x == y) { something(); somethingelse(); }
while (x == y) { something(); somethingelse(); }
可是對於單行的語句,能夠不添加花括號,可是請把它放在同一行編程
if (xx == null) xx = new Foo();
if (xx == null) xx = new Foo();
單行語句一樣建議添加花括號避免蘋果的bugapp
若是不添加花括號,必定不要在嵌套時使用。函數
使用 4 個空格做爲一個縮進,而不是使用 tabthis
全部的字段使用_camelCase
風格,並且儘量使用readonly
。在 internal 和 private 訪問的字段添加 _
前綴,對於靜態的字段添加s_
前綴,對於線程靜態的字段添加t_
前綴。若是使用了靜態的字段並且能夠設置readonly
,須要把readonly
放在static
後面。spa
最好不要公開字段,若是須要公開那麼使用PascalCasing風格並且不添加前綴。線程
不要添加 this.
,徹底是不必的。code
我也不是很贊同這個,由於若是使用擴展方法,須要使用this.
顯示指定訪問,即便訪問是默認的,如private string _foo
,而不是string _foo
。訪問須要放在最前面,如public abstract
,不建議abstract public
默認的訪問是可能修改的
對於引用須要放在文件的開頭。
禁止超過一行的空白,不可使用兩行空白。
不要使用兩行分割兩個類型。
禁止在一行結束添加多餘空格。經過 VisualStudio 的查看空格(ctrl+E,S)能夠看到空格
若是一個文件在格式規範定義以前已經有本身的規範,儘量參照文件現有的規範而不是去修改他。
新的修改參照現有的文件的格式。
我一點都不贊同。
只能在明顯能夠知道對象類型可使用 var ,如var stream = new FileStream(...)
。在沒法明顯知道對象類型不可使用 var ,如var stream = OpenStandardInput()
。
使用語言的關鍵字代替 BCL 類型,如使用 int, string, float
代替Int32
,String
,Single
對於全部的常量,包括靜態只讀,使用 PascalCasing
風格。若是須要使用 C++ 或其餘代碼對於命名有要求才可使用其餘的方法。
若是使用變量名的常量,必須使用 nameof
關鍵字。
字段必須放在一個類聲明的最前面。
我一點都不同意,由於誰會去管一個類的字段,我關心的是構造函數和公開屬性、函數。
若是在代碼使用了 非 ascii 的字符,那麼須要把他轉換爲 \uxx
方式,這樣能夠解決一些非 ascii 由於編譯器分析的問題。
固然上面的要求只是對於編譯的代碼
使用 Label 縮進一個小於當前縮進的標籤