大小寫慣例

注意

此內容是由 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 節錄。

另請參閱