首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 方法重載基礎(一):定義與核心規則

     編輯:關於C語言

什麼是方法重載?

在面向對象語言中,方法重載 允許在同一類內定義多個名稱相同但參數列表不同的方法。參數列表不同指:參數個數不同、參數類型不同、或參數順序不同。

構成重載的三個條件

  1. 在同一個類中;
  2. 方法名相同;
  3. 參數列表不同(個數、類型、順序任意一項差異)。

注意: 返回值類型不是重載的判斷依據。C# 禁止僅返回值不同的同名方法共存。

代碼示例

public void Show()               // (1) 無參數
{
    Console.WriteLine("Nothing");
}

public void Show(int number)     // (2) 有一個 int 參數 → 與 (1) 構成重載
{
    Console.WriteLine(number);
}

/* 編譯錯誤:僅返回值不同
public int Show(int number)      // (3) 與 (2) 參數列表相同,返回值不同 → 不允許
{
    Console.WriteLine(number);
    return number % 5;
}
*/

常見誤區

  • 返回值不同 ≠ 重載:C# 編譯器會報錯 CS0111。
  • ref/out 不同可構成重載:void M(int a) 與 void M(ref int a) 是不同簽名。
  • 泛型方法:void M<T>(T t) 與 void M(int i) 可共存,調用時按類型推斷選擇。

為什麼需要重載?

  • 提供統一的語義入口,簡化 API 設計(如 Console.WriteLine 多達 19 個重載)。
  • 支持不同參數組合的便捷調用,避免方法名爆炸(如 Add(int), Add(int,int), Add(params int[]))。

下一步預告

下一篇將探討涉及繼承關系參數(如 string vs object)時的重載解析細節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved