什麼是C#中普遍接受的命名慣例? (函數,類,參數,局部變量,命名空間等)在C#命名約定
在C#命名約定
回答
微軟擁有出色的set of guidelines on class library design,包括section on naming。總之(括號中的例子):
- 類/的Structs:PascalCase(
WebRequest
) - 接口:PascalCase與我的前綴(
IDisposable
) - 方法:PascalCase(
ToUpper
) - 屬性:PascalCase(
Length
) - 活動:PascalCase(
Click
) - 命名空間:PascalCase(
System.Collections
;不尋常的具有兩個在雖然一部分) - 非恆定變量,包括參數的話:駝峯格式(
keySelector
) - 常量:PascalCase(
Int32.MaxValue
) - 枚舉:PascalCase,奇異非標記和多個用於標誌(
HttpStatusCode
,BindingFlags
) - 屬性:PascalCase與「屬性」後綴(
ThreadStaticAttribute
)
私人名字是你的,但我傾向於遵循相同的約定作爲一切。雖然很多地方使用「m_」或「_」作爲實例變量的前綴,但是不鼓勵使用匈牙利符號(採用Win32的風格)。
尼斯概述@Jon。請參閱以下網址獲取上述代碼示例:http://www.dofactory.com/reference/csharp-coding-standards – 2017-07-27 09:56:35
Microsoft的.NET標準是使用Pascal Case作爲名稱空間,公共和受保護成員(基本上其他類可見的任何東西)。對於私人會員和本地變量,只要做你和你的團隊最熟悉的事情就可以有更廣泛的位置。
朱瓦爾·洛拍了刺傷這是Programming .NET Components,看到這個SO link了。
不要低估跟着你已儘可能接近工作儘可能平臺的命名約定的價值。
看的.NET Framework的參考材料的如何「適應」的例子(http://msdn.microsoft.com/en-us/library/ms229335.aspx)。
喬恩斯基特給你一個鏈接到一個良好的書面記錄由微軟:http://msdn.microsoft.com/en-us/library/ms229042.aspx
您也可以使用獨立微軟的FxCop(或代碼分析,如果你有團隊版)http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&DisplayLang=en檢查的命名約定有一直跟着。它具有適用於Microsoft約定的內置規則,這是您應該使用它們的另一個原因!
我想看看所謂的「Elements of C# Style」的鮑德溫,灰色,& Misfeldt超薄的書。這本藍皮書涵蓋了命名約定以及創建一致,乾淨,可讀代碼的許多其他方面。
ReSharper的指南建議
- 類型和命名空間UpperCamelCase
- 接口IUpperCamelCase類型參數TUpperCamelCase
- 方法屬性和事件UpperCamelCase本地 個
- 變量lowerCamelCaselowerCamelCase
- 參數局部常量lowerCamelCase字段(不是私人)UpperCamelCase
- 實例字段(私人)_lowerCamelCase
- 靜態字段(私人)_lowerCamelCase
- 恆定字段(非私有)個UpperCamelCase
- 常數字段(私有)UpperCamelCase
- 靜態只讀字段(未公開)UpperCamelCase
- 靜態只讀字段(私有)UpperCamelCase
- 枚舉成員UpperCamelCase
- 所有其他實體UpperCamelCase
- 1. c#命名約定
- 2. C#WinForms命名約定
- 3. C#項目命名約定
- 4. 驗證命名約定? C#
- 5. C#類命名約定
- 6. 命名約定
- 7. 命名約定
- 8. C#命名約定(標題與名稱)
- 9. C/C++:數組的命名約定?
- 10. TSQL命名約定〜這個命名約定叫什麼名字?
- 11. Protobuf命名約定
- 12. BEM:命名約定
- 13. 表命名約定?
- 14. ç命名約定
- 15. DAO命名約定
- 16. mysql命名約定
- 17. MySQL命名約定
- 18. .NET命名約定
- 19. Linq2sql命名約定
- 20. xmlns命名約定
- 21. FFMPEG命名約定
- 22. PHP命名約定?
- 23. Microsoft命名約定
- 24. URL命名約定
- 25. serialVersionUID命名約定
- 26. 命名約定Rails
- 27. C#轉換函數的命名約定
- 28. C#項目文件夾命名約定
- 29. C#中windows控件的命名約定
- 30. C++中的變量命名約定
通用公認的?沒有這樣的事我的朋友。 – JohnFx 2009-10-24 15:47:52
公平點 - 但是C#超過大多數(因爲MS指南從一開始就相當明顯)有一套更經常遵循的標準。 – Murph 2009-10-24 15:55:51
JohnFx ...「普遍接受」應該是一個更好的術語 – Nestor 2009-10-24 16:08:56