備註
此內容經Pearson Education, Inc.授權從架構設計指導方針:可重複使用 .NET 程式庫的慣例、習慣用語與範式 (第2版)轉載。 該版於2008年出版,該書自那以後已於 第三版全面修訂。 此頁面的某些資訊可能已過期。
本章的指導方針闡述了一種簡單的方法,當一致地應用大小寫規範時,能使類型、成員和參數的標識符更易於閱讀。
標識碼的大寫規則
若要區分標識碼中的單字,請將標識符中每個單字的第一個字母大寫。 請勿使用底線來區分單詞,或在任何識別符中使用底線。 根據標識碼的使用方式,有兩種適當的方式可將標識碼大寫:
PascalCasing
camelCasing
PascalCasing 慣例用於參數名稱以外的所有識別符號,會將每個單字的第一個字元大寫(包括長度超過兩個字母的縮寫),如下列範例所示:
PropertyDescriptor
HtmlTag
針對兩個字母縮略字都會大寫的特殊案例,如下列標識符所示:
IOStream
camelCasing 慣例僅用於參數名稱,會將每個單字的第一個字元改為大寫,但第一個單字除外,如下列範例所示。 如範例所示,以駱駝式大小寫表示的識別符號開頭的兩個字母縮略字都要小寫。
propertyDescriptor
ioStream
htmlTag
✔️ 請針對由多個單字組成的所有公用成員、類型和命名空間名稱,使用PascalCasing。
✔️ 請對參數名稱使用 camelCasing。
下表描述不同類型的識別碼大小寫規則。
識別碼 | 大小寫 | 範例 |
---|---|---|
Namespace | 帕斯卡 | namespace System.Security { ... } |
類型 | 帕斯卡 | public class StreamReader { ... } |
介面 | 帕斯卡 | public interface IEnumerable { ... } |
方法 | 帕斯卡 | public class Object { public virtual string ToString(); } |
房產 | 帕斯卡 | public class String { public int Length { get; } } |
事件 | 帕斯卡 | public class Process { public event EventHandler Exited; } |
領域 | 帕斯卡 | public class MessageQueue { public static readonly TimeSpan InfiniteTimeout; } public struct UInt32 { public const Min = 0; } |
列舉值 | 帕斯卡 | public enum FileMode { Append, ... } |
參數 | 駱駝 | public class Convert { public static int ToInt32(string value); } |
將複合字詞和一般詞彙大寫
大部分複合字詞會視為單一單字,以用於大寫。
❌ 請勿將每一個單字大寫成所謂的封閉式複合字。
這些是以單一單字拼寫的複合字,例如端點。 基於大小寫指導方針的目的,請將封閉式複合字視為單一單字。 使用目前的字典來判斷複合字是否以封閉形式撰寫。
帕斯卡 | 駱駝 | 不 |
---|---|---|
BitFlag |
bitFlag |
Bitflag |
Callback |
callback |
CallBack |
Canceled |
canceled |
Cancelled |
DoNot |
doNot |
Don't |
Email |
email |
EMail |
Endpoint |
endpoint |
EndPoint |
FileName |
fileName |
Filename |
Gridline |
gridline |
GridLine |
Hashtable |
hashtable |
HashTable |
Id |
id |
ID |
Indexes |
indexes |
Indices |
LogOff |
logOff |
LogOut |
LogOn |
logOn |
LogIn |
Metadata |
metadata |
MetaData, metaData |
Multipanel |
multipanel |
MultiPanel |
Multiview |
multiview |
MultiView |
Namespace |
namespace |
NameSpace |
Ok |
ok |
OK |
Pi |
pi |
PI |
Placeholder |
placeholder |
PlaceHolder |
SignIn |
signIn |
SignOn |
SignOut |
signOut |
SignOff |
UserName |
userName |
Username |
WhiteSpace |
whiteSpace |
Whitespace |
Writable |
writable |
Writeable |
區分大小寫
可以在 CLR 上運行的語言不需要支持區分大小寫,儘管有些語言是支持的。 即使您的語言支援它,可能存取架構的其他語言也不會。 因此,任何外部可存取的 API 都不能單獨依賴大小寫來區分相同內容中的兩個名稱。
❌ 切勿假設所有程式設計語言都區分大小寫。 他們不是。 名稱不能單獨區分大小寫。
© 2005年、2009年Microsoft公司部分。 保留所有權利。
經 Pearson Education, Inc. 許可重新刊登自 Krzysztof Cwalina 和 Brad Abrams 所著的 架構設計指導方針: 可重複使用的 .NET 程式庫慣例、慣用語和模式,第 2 版,2008 年 10 月 22 日由 Addison-Wesley Professional 發行,作為 Microsoft Windows 開發系列的一部分。