【C#.Net】命名原則

  • 4582
  • 0
  • 2019-01-16

好的且一致性的命名原則與編碼規範,可讓程式的可讀性大幅提升,進而降低專案維護的門檻與成本。

物件命名

  1. 使用匈牙利命名法
  2. 使用Pascal命名法
  3. 所有物件名稱(包含變數、屬性、方法、事件、委派),一律清楚表明用途,除非是暫時性的區域變數(例如迴圈)。
  4. 名稱由一個以上單字組成,每個單字的第一個字母為大寫,單字之間禁止使用任何連接符號空格,除非有通用的縮寫慣例,否則禁止使用縮寫
  5. 詳細註解說明物件的用途、範圍、使用限制,若為函式則還要說明回傳值與每個參數的定義。
  6. 集合類別物件命名:結尾加上Collection
  7. 列舉物件命名:結尾加上Enum
  8. 全域物件:應於一類別中集中管理,妥善處理好物件的生成(instantiate)、存取與資源釋放(release),以免造成系統不穩定。

類別命名

  1. 一般類別:以角色命名。
  2. 抽象類別:名稱結尾加上Abstract
  3. 基礎類別:名稱結尾加上Base
  4. 工具類別:名稱結尾加上Utility
  5. 私有成員變數在名稱前加上底線作為識別,且第一個單字的第一個字母為小寫,使用時一律透過 this 來做存取。(例如:this._productName)
  6. 公開成員變數一律以屬性(property)方式實作,禁止單純地將變數宣告為 public。
  7. 方法:以動作命名,盡量使用動詞+名詞(s)。(例如:GetProductName(), GetProducts() )
  • 新增:以 Add 開頭。
  • 刪除:以 Delete 開頭。
  • 修改:以 Change 開頭。
  • 查詢:以 Find 開頭。
  • 提取:以 Get 開頭。
  • 設定:以 Set 開頭。
  1. 父類別務必宣告為抽象類別,僅供子類別繼承用,不可直接實體化,若抽象類別中無包含非抽象方法時,則應改為以介面來實作。
  2. 介面的命名:包留前綴字 I (英文 i 的大寫)。
  3. 工具類別中的方法以 static 宣告為靜態,且使用時不會保留任何呼叫端的資料與狀態,也不會保留自身工作狀態,確保與其他類別的低耦合性。

參考網站

https://www.dofactory.com/reference/csharp-coding-standards

https://dotblogs.com.tw/regionbbs/2009/09/06/codingstandards

控制項命名

  1. 以控制項類別縮寫作為開頭,且字母皆為小寫。 (未完成...)
通用控制項                  
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 縮寫