好的且一致性的命名原則與編碼規範,可讓程式的可讀性大幅提升,進而降低專案維護的門檻與成本。
物件命名
- 不使用匈牙利命名法。
- 使用Pascal命名法。
- 所有物件名稱(包含變數、屬性、方法、事件、委派),一律清楚表明用途,除非是暫時性的區域變數(例如迴圈)。
- 名稱由一個以上單字組成,每個單字的第一個字母為大寫,單字之間禁止使用任何連接符號與空格,除非有通用的縮寫慣例,否則禁止使用縮寫。
- 詳細註解說明物件的用途、範圍、使用限制,若為函式則還要說明回傳值與每個參數的定義。
- 集合類別物件命名:結尾加上Collection。
- 列舉物件命名:結尾加上Enum。
- 全域物件:應於一類別中集中管理,妥善處理好物件的生成(instantiate)、存取與資源釋放(release),以免造成系統不穩定。
類別命名
- 一般類別:以角色命名。
- 抽象類別:名稱結尾加上Abstract。
- 基礎類別:名稱結尾加上Base。
- 工具類別:名稱結尾加上Utility。
- 私有成員變數在名稱前加上底線作為識別,且第一個單字的第一個字母為小寫,使用時一律透過 this 來做存取。(例如:this._productName)
- 公開成員變數一律以屬性(property)方式實作,禁止單純地將變數宣告為 public。
- 方法:以動作命名,盡量使用動詞+名詞(s)。(例如:GetProductName(), GetProducts() )
- 新增:以 Add 開頭。
- 刪除:以 Delete 開頭。
- 修改:以 Change 開頭。
- 查詢:以 Find 開頭。
- 提取:以 Get 開頭。
- 設定:以 Set 開頭。
- 父類別務必宣告為抽象類別,僅供子類別繼承用,不可直接實體化,若抽象類別中無包含非抽象方法時,則應改為以介面來實作。
- 介面的命名:包留前綴字 I (英文 i 的大寫)。
- 工具類別中的方法以 static 宣告為靜態,且使用時不會保留任何呼叫端的資料與狀態,也不會保留自身工作狀態,確保與其他類別的低耦合性。
參考網站
https://www.dofactory.com/reference/csharp-coding-standards
https://dotblogs.com.tw/regionbbs/2009/09/06/codingstandards
控制項命名
- 以控制項類別縮寫作為開頭,且字母皆為小寫。 (未完成...)
通用控制項 | |||||||||
UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 |
Button | btn | DataTimePicker | dtp | ListView | lstv | NumericUpDown | nud | ToolTip | tt |
CheckBox | chkb | Label | lb | MaskedTextBox | mtb | PictureBox | pb | TreeView | tv |
CheckedListBox | chklb | LinkLabel | llb | MonthCalendar | mc | RichTextBox | rtb | WebBrowser | wb |
ComboBox | cb | ListBox | lstb | NotifyIcon | ni | TextBox | tb | ||
功能表與工具列 | |||||||||
UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 |
資料 | |||||||||
UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 |
元件 | |||||||||
UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 |
列印 | |||||||||
UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 |
報表 | |||||||||
UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 | UserControl | 縮寫 |