Camel:標識符的首字母小寫,而每個後面連接的單詞的首字母都大寫。
標識符 | 大小寫方式 | 示例 |
---|---|---|
類 | Pascal | AppDomain |
枚舉類型 | Pascal | ErrorLevel |
枚舉值 | Pascal | FatalError |
事件 | Pascal | ValueChange |
異常類 | Pascal | WebException 注意 總是以 Exception 後綴結尾。 |
只讀的靜態字段 | Pascal | RedValue |
接口 | Pascal | IDisposable 注意 總是以 |
方法 | 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 大小寫。
以下規則概述屬性的命名指南:
- 使用名詞或名詞短語命名屬性。
- 使用 Pascal 大小寫。
- 不要使用匈牙利語表示法。
- 考慮用與屬性的基礎類型相同的名稱創建屬性。例如,如果聲明名爲 Color 的屬性,則屬性的類型同樣應該是 Color。
以下規則概述事件的命名指南:
- 使用 Pascal 大小寫。
- 不要使用匈牙利語表示法。
- 對事件處理程序名稱使用
EventHandler
後綴。 - 指定兩個名爲 sender 和 e 的參數。sender 參數表示引發事件的對象。sender 參數始終是 object 類型的,即使在可以使用更爲特定的類型時也如此。與事件相關聯的狀態封裝在名爲 e 的事件類的實例中。對 e 參數類型使用適當而特定的事件類。
- 用
EventArgs
後綴命名事件參數類。 - 考慮用動詞命名事件。例如,命名正確的事件名稱包括 Clicked、Painting 和 DroppedDown。
- 使用動名詞(動詞的“ing”形式)創建表示事件前的概念的事件名稱,用過去式表示事件後。例如,可以取消的 Close 事件應當具有
Closing
事件和Closed
事件。不要使用BeforeXxx
/AfterXxx
命名模式。 - 不要在類型的事件聲明上使用前綴或者後綴。例如,使用
Close
,而不要使用OnClose
。 - 通常情況下,對於可以在派生類中重寫的事件,應在類型上提供一個受保護的方法(稱爲 OnXxx)。此方法只應具有事件參數 e,因爲發送方總是類型的實例。
另外需要注意:
- 所有的成員變量前加前綴 m_。
- 常量全部大寫,單詞之間以 “_” 分隔。
- 使用某個控件的值時,儘量命名局部變量。
- 把引用的系統的namespace和自定義或第三方的分開。
- 生成和構建一個長的字符串時,一定要使用StringBuilder,而不用string。
- 文件名要能反應類的內容,最好是和類同名,一個文件中一個類。