共用方式為


成員多載

注意

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

成員多載表示在相同型別上建立兩個或多個成員,而其中差異為參數的數目和型別但具有相同名稱。 例如,在下列範例中會多載 WriteLine 方法:

public static class Console {
    public void WriteLine();
    public void WriteLine(string value);
    public void WriteLine(bool value);
    ...
}

由於僅方法、建構函式和索引屬性可有參數,因此僅可多載這些成員。

多載是其中一個最重要的技術,可用於改善重複使用程式庫的可用性、生產力和可讀性。 數個參數的多載可讓您提供更簡單的建構函式和方法版本。 參數型別的多載可讓您針對在所選不同型別集合上執行相同作業的成員使用相同的成員名稱。

✔️ 請嘗試使用描述性參數以指出較短多載所使用的預設值。

❌ 避免在多載中任意變動參數名稱。 如果一個多載中的參數表示與其他多載中參數相同的輸入,則參數應具有相同名稱。

❌ 避免在多載成員中有不一致的參數順序。 具有相同名稱的參數應顯示在所有多載的相同位置中。

✔️ 請僅虛擬化最長的多載 (如果需要擴充性)。 較短的多載應僅透過較長的多載呼叫。

❌ 請不要使用 refout 修飾元來多載成員。

某些語言無法解析對這類多載的呼叫。 此外,這類多載通常具有完全不同的語意,而且可能不應為多載,而是兩個個別方法。

❌ 多載不可有相同位置的參數和相似型別但語意不同的參數。

✔️ 請允許 null 針對選擇性引數進行傳遞。

✔️ 請使用成員多載,而非使用預設引數定義成員。

預設引述數不符合 CLS 規範。

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 節錄。

另請參閱