共用方式為


類型成員的名稱

備註

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

類型是由成員所組成:方法、屬性、事件、建構函式和欄位。 下列各節說明命名類型成員的指導方針。

方法的名稱

因為方法是採取動作的方法,因此設計指導方針會要求方法名稱是動詞或動詞片語。 遵循此指導方針也可用來區分方法名稱與屬性和類型名稱,這些名稱為名詞或形容詞片語。

✔️ DO 會提供動詞或動詞詞組的方法名稱。

public class String {
    public int CompareTo(...);
    public string[] Split(...);
    public string Trim();
}

屬性的名稱

與其他成員不同,屬性應該指定名詞詞組或形容詞名稱。 這是因為屬性會參考數據,而屬性的名稱會反映這一點。 PascalCasing 一律用於屬性名稱。

✔️ 應該使用名詞、名詞片語或形容詞來命名屬性。

❌ 請勿具有符合 「Get」 方法名稱的屬性,如下列範例所示:

public string TextWriter { get {...} set {...} } public string GetTextWriter(int value) { ... }

此模式通常表示屬性真的應該被視為方法。

✔️ DO 將集合屬性命名為以複數詞組描述集合中的項目,而非使用單一片語後接「List」或「Collection」。

✔️ DO 將布爾值屬性命名為肯定片語 (CanSeek 而不是 CantSeek)。 或者,您也可以在布爾值屬性前面加上 “Is”、“Can” 或 “Has”,但僅在這樣做能增強意義時使用。

✔️ 請考慮為屬性提供與其類型相同的名稱。

例如,下列屬性正確取得並設定名為 Color的列舉值,因此屬性的名稱為 Color

public enum Color {...}
public class Control {
    public Color Color { get {...} set {...} }
}

事件的名稱

事件總是指某種行為,不論是正在發生的還是已經發生的。 因此,如同方法,事件會以動詞來命名,而動詞時態則用來指出引發事件的時間。

使用動詞或動詞片語來命名事件。

範例包括 ClickedPaintingDroppedDown等。

✔️ 請為事件命名時使用目前和過去時態,以提供前後的概念。

例如,在關閉視窗之前引發的 close 事件會呼叫 Closing,而關閉視窗之後引發的關閉事件則會呼叫 Closed

❌ 請勿使用 「Before」 或 「After」 前置字首或後置字尾來表示前置和後置事件。 請使用如剛才所述的現在和過去時態。

✔️ 具有 「EventHandler」 後綴的 DO 名稱事件處理程式(做為事件類型的委派),如下列範例所示:

public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);

✔️ 請在事件處理程序中使用名為 sendere 的兩個參數。

sender 參數代表引發事件的 物件。 傳送者參數通常為 類型 object,即使可能採用更特定的類型也一樣。

請將事件參數類別命名詞尾為「EventArgs」。

欄位的名稱

欄位命名指導方針適用於靜態公用和受保護的欄位。 內部和私人欄位不受指導方針所涵蓋, 成員設計指導方針不允許公用或受保護的實例欄位。

✔️ 請確實在欄位名稱中使用PascalCasing。

✔️ 使用名詞、名詞片語或形容詞為欄位命名。

❌ 請勿使用功能變數名稱的前置詞。

例如,請勿使用 「g_」 或 「s_」 來表示靜態字段。

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

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

另請參閱