共用方式為


類別、結構及介面的名稱

備註

此內容經Pearson Education, Inc.授權從架構設計指導方針:可重複使用 .NET 程式庫的慣例、習慣用語與範式 (第2版)轉載。 該版於2008年出版,該書自那以後已於 第三版全面修訂。 此頁面的某些資訊可能已過期。

後續的命名指導方針會套用至一般類型命名。

✔️ 使用 PascalCasing 來命名類別和結構時,應使用名詞或名詞片語。

這會區分類型名稱與使用動詞片語命名的方法。

✔️ DO 應以形容詞片語或偶爾使用名詞或名詞片語為介面命名。

名詞和名詞片語應該很少使用,而且可能表示類型應該是抽象類,而不是介面。

❌ DO NOT 為類別名稱指定前置詞 (例如 “C” )。

✔️ 請考慮以基類的名稱結束衍生類別的名稱。

這是非常可讀的,並清楚地解釋關聯性。 在程式代碼中,有一些範例是: ArgumentOutOfRangeException,這是一種 Exception, 和 SerializableAttribute,這是一種 Attribute。 不過,在適用本指導方針時,請務必使用合理的判斷:例如,類別 Button 是一種 Control 事件,雖然 Control 未出現在其名稱中。

✔️ DO 以字母 I 作為介面型別名稱的前綴,以表示是介面類型。

例如, IComponent (描述性名詞)、 ICustomAttributeProvider (名詞詞組)和 IPersistable (形容詞)是適當的介面名稱。 如同其他類型名稱,請避免縮寫。

✔️ 當您定義類別-介面組合時,若類別是介面的標準實作,請務必確定名稱的不同僅在於介面名稱上加上 「I」 前置詞。

泛型型別參數的名稱

泛型已新增至 .NET Framework 2.0。 此功能引進了稱為 類型參數的新標識符類型。

✔️ DO 會使用描述性名稱命名泛型型別參數,除非單一字母名稱完全可以解釋,而且描述性名稱不會增加值。

✔️ 請考慮使用 T 作為具有單一字母類型參數之類型的類型參數名稱。

public int IComparer<T> { ... }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T:struct { ... }

✔️ 使用 \T 作為描述性類型參數名稱的前綴。

public interface ISessionChannel<TSession> where TSession : ISession {
    TSession Session { get; }
}

✔️ 考慮在參數命名中指出類型參數的限制。

例如,一個限制為 ISession 的參數可能會被命名為 TSession

常見類型名稱

✔️ 當命名衍生自 或實作特定 .NET Framework 類型時,請遵循下表中所述的指導方針。

基底類型 衍生/實作類型準則
System.Attribute ✔️ DO 將後綴 「Attribute」 新增至自訂屬性類別的名稱。
System.Delegate ✔️ 請將後綴「EventHandler」添加到在事件中使用的委派名稱。

✔️ DO 將後綴「Callback」新增至非用作事件處理程式的委派名稱。

❌ 請勿將後綴 「Delegate」 新增至委派。
System.EventArgs ✔️ DO 新增後綴 「EventArgs」。
System.Enum ❌ 請勿從這個類別繼承;請改用語言支援的關鍵字;例如,在 C# 中,使用 enum 關鍵字。

❌ 請勿新增後綴 「Enum」 或 「Flag」。
System.Exception ✔️ DO 新增後綴 「例外狀況」。
IDictionary
IDictionary<TKey,TValue>
✔️ DO 新增後綴 「Dictionary」。請注意, IDictionary 這是特定的集合類型,但此指導方針的優先順序高於後續較一般的集合指導方針。
IEnumerable
ICollection
IList
IEnumerable<T>
ICollection<T>
IList<T>
✔️ 加上後綴「Collection」。
System.IO.Stream ✔️ DO 新增後綴 「Stream」。。
CodeAccessPermission IPermission ✔️ DO 新增後綴 「Permission」。。

命名列舉

列舉型別的名稱(也稱為列舉)一般應遵循標準型別命名規則(PascalCasing 等)。 此外,還有其他準則特別適用於列舉型別。

✔️ 請對列舉使用單一類型名稱,除非其值是位元欄位。

✔️ 請針對具有位欄位字組做為值的列舉使用複數類型名稱,也稱為旗標列舉。

❌ 請勿在列舉類型名稱中使用 「Enum」 後綴。

❌ 請勿在列舉類型名稱中使用 Flag 或 Flags 後綴。

❌ 請勿在列舉值名稱上使用前置詞(例如 ADO 列舉的 "ad"、RTF 列舉的 "rtf" 等)。

© 2005年、2009年Microsoft公司部分。 保留所有權利。

經 Pearson Education, Inc. 許可重新刊登自 Krzysztof Cwalina 和 Brad Abrams 所著的 架構設計指導方針: 可重複使用的 .NET 程式庫慣例、慣用語和模式,第 2 版,2008 年 10 月 22 日由 Addison-Wesley Professional 發行,作為 Microsoft Windows 開發系列的一部分。

另請參閱