本文實際只是翻譯 .NET Core foundational libraries 官方文檔的編碼風格 ...
本文實際只是翻譯 .NET Core foundational libraries 官方文檔的編碼風格
在 .NET Core foundational libraries項目使用的編程規範預設就是 VisualStudio 預設樣式。
花括弧
花括弧使用 Allman style 風格,所有的花括弧在新的一行開始。
關於 Allman style 就是如下,花括弧放在下一行,而且花括弧不進行縮進,花括弧裡面的代碼縮進。
while (x == y)
{
something();
somethingelse();
}
但是對於單行的語句,可以不添加花括弧,但是請把它放在同一行
if (xx == null) xx = new Foo();
單行語句同樣建議添加花括弧避免蘋果的bug
如果不添加花括弧,一定不要在嵌套時使用。
空格
使用 4 個空格作為一個縮進,而不是使用 tab
欄位
所有的欄位使用_camelCase
風格,而且儘可能使用readonly
。在 internal 和 private 訪問的欄位添加 _
首碼,對於靜態的欄位添加s_
首碼,對於線程靜態的欄位添加t_
首碼。如果使用了靜態的欄位而且可以設置readonly
,需要把readonly
放在static
後面。
最好不要公開欄位,如果需要公開那麼使用PascalCasing風格而且不添加首碼。
我不是很贊同對欄位的風格,但是因為本文是翻譯,我就沒有添加自己的理解。
限定
不要添加 this.
,完全是沒必要的。
我也不是很贊同這個,因為如果使用擴展方法,需要使用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
使用 Label 縮進一個小於當前縮進的標簽
本作品採用知識共用署名-非商業性使用-相同方式共用 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發佈,但務必保留文章署名林德熙(包含鏈接:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫。