C# 命名規則與開發習慣 整理資料

Pascal:將標識符的首字母和後面連接的每個單詞的首字母都大寫。可以對三字符或更多字符的標識符使用 Pascal 大小寫。

Camel:標識符的首字母小寫,而每個後面連接的單詞的首字母都大寫。


標識符 大小寫方式 示例
Pascal AppDomain
枚舉類型 Pascal ErrorLevel
枚舉值 Pascal FatalError
事件 Pascal ValueChange
異常類 Pascal WebException
注意   總是以 Exception 後綴結尾。
只讀的靜態字段 Pascal RedValue
接口 Pascal IDisposable
注意   總是以 I 前綴開始。
方法 Pascal ToString
命名空間 Pascal System.Drawing
參數 Camel typeName
屬性 Pascal BackColor
受保護的實例字段 Camel redValue
注意   很少使用。屬性優於使用受保護的實例字段。
公共實例字段 Pascal RedValue
注意   很少使用。屬性優於使用公共實例字段。

命名命名空間時的一般性規則是使用公司名稱,後跟技術名稱和可選的功能與設計。

以下規則概述命名類的指南:

  • 使用名詞或名詞短語命名類。
  • 使用 Pascal 大小寫
  • 少用縮寫。
  • 不要使用類型前綴,如在類名稱上對類使用 C 前綴。例如,使用類名稱 FileStream,而不是 CFileStream
  • 不要使用下劃線字符 (_)。
  • 有時候需要提供以字母 I 開始的類名稱,雖然該類不是接口。只要 I 是作爲類名稱組成部分的整個單詞的第一個字母,這便是適當的。例如,類名稱 IdentityStore 就是適當的。
  • 在適當的地方,使用複合單詞命名派生的類。派生類名稱的第二個部分應當是基類的名稱。例如,ApplicationException 對於從名爲 Exception 的類派生的類是適當的名稱,原因是 ApplicationException 是一種 Exception。請在應用該規則時進行合理的判斷。例如,Button 對於從 Control 派生的類是適當的名稱。儘管按鈕是一種控件,但是將 Control 作爲類名稱的一部分將使名稱不必要地加長。

以下規則概述接口的命名指南:

  • 用名詞或名詞短語,或者描述行爲的形容詞命名接口。例如,接口名稱 IComponent 使用描述性名詞。接口名稱 ICustomAttributeProvider 使用名詞短語。名稱 IPersistable 使用形容詞。
  • 使用 Pascal 大小寫
  • 少用縮寫。
  • 給接口名稱加上字母 I 前綴,以指示該類型爲接口。
  • 在定義類/接口對(其中類是接口的標準實現)時使用相似的名稱。兩個名稱的區別應該只是接口名稱上有字母 I 前綴。
  • 不要使用下劃線字符 (_)。

命名屬性時的一般性規則是將後綴 Attribute 添加到自定義屬性類。

枚舉 (Enum) 值類型從 Enum 類繼承。以下規則概述枚舉的命名指南:

  • 對於 Enum 類型和值名稱使用 Pascal 大小寫
  • 少用縮寫。
  • 不要在 Enum 類型名稱上使用 Enum 後綴。
  • 對大多數 Enum 類型使用單數名稱,但是對作爲位域的 Enum 類型使用複數名稱。
  • 總是將 FlagsAttribute 添加到位域 Enum 類型。

以下規則概述靜態字段的命名指南:

  • 使用名詞、名詞短語或者名詞的縮寫命名靜態字段。
  • 使用 Pascal 大小寫
  • 不要在靜態字段名稱中使用匈牙利語表示法的前綴。
  • 建議儘可能使用靜態屬性而不是公共靜態字段。

以下規則概述參數的命名指南:
  • 對參數名稱使用 Camel 大小寫
  • 使用描述性參數名稱。參數名稱應當具有足夠的描述性,以便參數的名稱及其類型可用於在大多數情況下確定它的含義。例如,提供上下文相關幫助的可視化設計工具會按開發人員鍵入的實際內容顯示方法參數。在這種情況下,方法參數名稱的表述必須清楚明白,開發人員才能提供正確的參數。
  • 使用描述參數的含義的名稱,而不要使用描述參數的類型的名稱。開發工具將提供有關參數的類型的有意義的信息。因此,通過描述意義,可以更好地使用參數的名稱。少用基於類型的參數名稱,僅在適合使用它們的地方使用它們。
  • 不要使用保留的參數。保留的參數是專用參數,如果需要,可以在未來的版本中公開它們。相反,如果在類庫的未來版本中需要更多的數據,請爲方法添加新的重載。
  • 不要給參數名稱加匈牙利語類型表示法的前綴。

以下規則概述方法的命名指南:


以下規則概述屬性的命名指南:

  • 使用名詞或名詞短語命名屬性。
  • 使用 Pascal 大小寫
  • 不要使用匈牙利語表示法。
  • 考慮用與屬性的基礎類型相同的名稱創建屬性。例如,如果聲明名爲 Color 的屬性,則屬性的類型同樣應該是 Color

以下規則概述事件的命名指南:

  • 使用 Pascal 大小寫
  • 不要使用匈牙利語表示法。
  • 對事件處理程序名稱使用 EventHandler 後綴。
  • 指定兩個名爲 sender e 的參數。sender 參數表示引發事件的對象。sender 參數始終是 object 類型的,即使在可以使用更爲特定的類型時也如此。與事件相關聯的狀態封裝在名爲 e 的事件類的實例中。對 e 參數類型使用適當而特定的事件類。
  • EventArgs 後綴命名事件參數類。
  • 考慮用動詞命名事件。例如,命名正確的事件名稱包括 ClickedPaintingDroppedDown
  • 使用動名詞(動詞的“ing”形式)創建表示事件前的概念的事件名稱,用過去式表示事件後。例如,可以取消的 Close 事件應當具有 Closing 事件和 Closed 事件。不要使用 BeforeXxx/AfterXxx 命名模式。
  • 不要在類型的事件聲明上使用前綴或者後綴。例如,使用 Close,而不要使用 OnClose
  • 通常情況下,對於可以在派生類中重寫的事件,應在類型上提供一個受保護的方法(稱爲 OnXxx)。此方法只應具有事件參數 e,因爲發送方總是類型的實例。

另外需要注意:

  • 所有的成員變量前加前綴 m_。
  • 常量全部大寫,單詞之間以 “_” 分隔。
  • 使用某個控件的值時,儘量命名局部變量。
  • 把引用的系統的namespace和自定義或第三方的分開。
  • 生成和構建一個長的字符串時,一定要使用StringBuilder,而不用string。
  • 文件名要能反應類的內容,最好是和類同名,一個文件中一個類。
 
發佈了64 篇原創文章 · 獲贊 5 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章