備註
此內容經Pearson Education, Inc.授權從架構設計指導方針:可重複使用 .NET 程式庫的慣例、習慣用語與範式 (第2版)轉載。 該版於2008年出版,該書自那以後已於 第三版全面修訂。 此頁面的某些資訊可能已過期。
成員多載表示在相同類別上建立兩個或多個成員,這些成員的差異僅在於參數的數目或類型,但名稱是相同的。 例如,在下列專案中, WriteLine 方法會多載:
public static class Console {
public void WriteLine();
public void WriteLine(string value);
public void WriteLine(bool value);
...
}
因為只有方法、建構函式和索引屬性可以有參數,因此只能多載這些成員。
多載是改善可重複使用連結庫可用性、生產力和可讀性最重要的技術之一。 參數數目上的多載可讓您提供更簡單的建構函式和方法版本。 型別多載允許您在對多種選定類型的成員執行相同操作時,使用相同的成員名稱。
✔️ DO 嘗試使用描述性參數名稱來指出較短多載所使用的預設值。
❌ 避免在多載中任意改變參數名稱。 如果一個多載中的參數代表與另一個多載中參數相同的輸入,參數應該具有相同的名稱。
❌ 避免在多載成員的參數順序上不一致。 具有相同名稱的參數應該出現在所有多載的相同位置。
✔️ DO 只將最長的重載定為虛擬(如果需要擴充性)。 較短的重載函數應該只是簡單地將呼叫定向到較長的重載函數。
❌ 請勿使用 ref 或 out 修飾詞來多載成員。
某些語言無法解析對這類多載的呼叫。 此外,這類重載通常具有完全不同的語義,而且可能不應該是重載,而是兩個不同的方法。
❌ 請勿在相同位置使用類型相似但語意不同的參數多載。
✔️ DO 允許 null 傳遞給可選參數。
✔️ DO 使用成員重載,而不是定義具有預設參數的成員。
默認參數不符合 CLS 標準。
© 2005年、2009年Microsoft公司部分。 保留所有權利。
經 Pearson Education, Inc. 許可重新刊登自 Krzysztof Cwalina 和 Brad Abrams 所著的 架構設計指導方針: 可重複使用的 .NET 程式庫慣例、慣用語和模式,第 2 版,2008 年 10 月 22 日由 Addison-Wesley Professional 發行,作為 Microsoft Windows 開發系列的一部分。