大小寫慣例
注意
此內容是由 Pearson Education, Inc. 授權轉載自架構設計指導方針:可重複使用 .NET 程式庫的慣例、慣用語和模式,第 2 版。 該版於 2008 年出版,該書自那以後已於第三版進行了全面修訂。 此頁面上的某些資訊可能已過期。
本章中的指導方針會針對使用案例配置簡單的方法,在一致套用的情況下,讓類型、成員和參數的識別碼更易於閱讀。
識別碼的大小寫規則
若要區分識別碼中的字組,請將識別碼中每個單字的第一個字母大寫。 請勿使用底線來區分字組,或就此用於區分識別碼中的任何位置。 根據識別碼的使用方式,有兩種適當的方式可將識別碼大寫:
PascalCasing
camelCasing
PascalCasing 慣例用於參數名稱以外的所有識別碼,可將每個字組 (包括長度大於兩個字母的縮略字) 的第一個字元大寫,如下列範例所示:
PropertyDescriptor
HtmlTag
針對兩個字母縮略字皆為大寫會視為特殊案例,如下列識別碼所示:
IOStream
camelCasing 慣例僅用於參數名稱,可將每個字組的第一個字元大寫,但第一個字組除外,如下列範例所示。 如本範例所示,開頭為駝峰式大小寫識別碼的兩個字母縮略字皆為小寫。
propertyDescriptor
ioStream
htmlTag
✔️ 務必針對由多個字組組成的所有公用成員、類型和命名空間名稱使用 PascalCasing。
✔️ 務必在參數名稱中使用 camelCasing。
下表描述不同識別碼類型的大小寫規則。
識別碼 | Casing | 範例 |
---|---|---|
Namespace | Pascal | namespace System.Security { ... } |
類型 | Pascal | public class StreamReader { ... } |
介面 | Pascal | public interface IEnumerable { ... } |
方法 | Pascal | public class Object { public virtual string ToString(); } |
屬性 | Pascal | public class String { public int Length { get; } } |
活動 | Pascal | public class Process { public event EventHandler Exited; } |
欄位 | Pascal | public class MessageQueue { public static readonly TimeSpan InfiniteTimeout; } public struct UInt32 { public const Min = 0; } |
列舉值 | Pascal | public enum FileMode { Append, ... } |
參數 | Camel | public class Convert { public static int ToInt32(string value); } |
將複合字和一般詞彙大寫
大部分複合詞彙會被視為單字,以用於大寫。
❌ 請勿將所謂封閉形式複合字中的每一個字組大寫。
這些是寫成單字的複合字,例如端點。 為就大小寫指導方針的目的,請將封閉式複合字視為單字。 使用目前的字典來判斷複合字是否以封閉形式撰寫。
Pascal | Camel | Not |
---|---|---|
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,都不能單獨仰賴大小寫來區分相同內容中的兩個名稱。
❌ 請勿假設所有程式設計語言皆為區分大小寫。 但它們並不相等。 名稱不能單獨區分大小寫。
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 節錄。