一般命名慣例
注意
此內容是由 Pearson Education, Inc. 授權轉載自架構設計指導方針:可重複使用 .NET 程式庫的慣例、慣用語和模式,第 2 版。 該版於 2008 年出版,該書自那以後已於第三版進行了全面修訂。 此頁面的某些資訊可能已過期。
本節說明關於字詞選擇的一般命名慣例、使用縮寫和首字母縮寫的指導方針,以及如何避免使用特定語言名稱的建議。
字詞選擇
✔️ 請選擇易於閱讀的識別碼名稱。
例如,名為 HorizontalAlignment
的屬性比 AlignmentHorizontal
更容易理解。
✔️ 以可讀性為優先,而非簡潔性。
屬性名稱 CanScrollHorizontally
會優於 ScrollableX
(模糊指涉 X 軸)。
❌ 請勿使用底線、連字號或任何其他非英數字元。
❌ 請勿使用匈牙利命名法。
❌ 避免使用與常見程式設計語言關鍵字衝突的識別碼。
根據 Common Language Specification (CLS) 的第 4 個規則,所有符合規範的語言都必須提供一種機制,允許使用該語言的關鍵字做為識別碼以存取具名項目。 舉例來說,C# 針對此情況可使用 @ 符號作為逸出機制。 不過,依然建議避免常見的關鍵字,因為使用逸出序列的方法比起不使用的方法更加困難。
使用縮寫和首字母縮寫
❌ 請勿使用縮寫或首字母縮寫作為識別碼名稱的一部分。
例如,請使用 GetWindow
,而非 GetWin
。
❌ 請勿使用任何罕見的首字母縮寫,最好在必要時才使用。
避免語言特定的名稱
✔️ 請使用語意相關的名稱,而不是類型名稱的語言特定關鍵字。
例如,GetLength
是比 GetInt
更好的名稱。
✔️ 在識別碼沒有類型之外語意意義的少數情況下,請使用一般 CLR 類型名稱,而不是語言特定的名稱。
例如,轉換成 Int64 的方法應該命名為 ToInt64
,而不是 ToLong
(因為 Int64 是 C# 特定別名 long
的 CLR 名稱)。 下表提供數個使用 CLR 類型名稱的基底資料類型 (以及 C#、Visual Basic 和 C++ 的對應類型名稱)。
C# | Visual Basic | C++ | CLR |
---|---|---|---|
sbyte | SByte | char | SByte |
byte | 位元組 | unsigned char | 位元組 |
short | Short | short | Int16 |
ushort | UInt16 | unsigned short | UInt16 |
int | 整數 | int | Int32 |
uint | UInt32 | 不帶正負號的整數 | UInt32 |
long | Long | __int64 | Int64 |
ulong | UInt64 | unsigned __int64 | UInt64 |
float | Single | float | Single |
double | Double | double | Double |
bool | 布林值 | bool | 布林值 |
char | Char | wchar_t | Char |
string | String | String | String |
object | Object | Object | Object |
✔️ 在識別碼沒有語意意義且參數的類型不重要的少數情況下,請使用 value
或 item
之類的一般名稱,不要重複類型名稱。
命名現有 API 的新版本
✔️ 建立現有 API 的新版本時,請使用與舊 API 類似的名稱。
這有助於醒目提示 API 之間的關聯性。
✔️ 請優先採用新增尾碼來指出現有 API 的新版本,而不是使用前綴。
這個作法有助於瀏覽文件或使用 IntelliSense 時的探索。 舊版 API 會與新版 API 排列在一起,因為大部分的瀏覽器和 IntelliSense 是依字母順序顯示識別碼。
✔️ 請考慮使用全新的但有意義的識別碼,而不是新增尾碼或前綴。
✔️ 請使用數值尾碼來指出現有 API 新版本,特別是當 API 的現有名稱是唯一合理的名稱 (例如,此名稱為業界標準),且不適合新增任何有意義的尾碼 (或變更名稱) 的情況下。
❌ 請勿對識別碼使用「Ex」(或類似字詞) 尾碼來區別同一 API 的新舊版本。
✔️ 在導入適用於 64 位元整數 (長整數) 而不是 32 位元整數的 API 版本時,請使用「64」尾碼。 只有當已存在現有的 32 位元 API 時,才需要採用此方法;請勿對只有 64 位元版本的全新 API 執行此動作。
Portions © 2005, 2009 Microsoft Corporation. 著作權所有,並保留一切權利。
獲 Pearson Education, Inc. 的授權再版,從 Krzysztof Cwalina 和 Brad Abrams 撰寫,並在 2008 年 10 月 22 日由 Addison-Wesley Professional 出版,作為 Microsoft Windows Development Series 一部份的 Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition 節錄。