在C#中,方法重載允許您使用相同的名稱(chēng)定義多個(gè)方法,但這些方法應(yīng)該具有不同的參數(shù)列表。參數(shù)列表的不同可以是參數(shù)的個(gè)數(shù)不同,或者即使參數(shù)個(gè)數(shù)相同,它們的類(lèi)型也不同(例如,一個(gè)是int,另一個(gè)是string)。編譯器根據(jù)調(diào)用方法時(shí)傳遞的參數(shù)類(lèi)型和數(shù)量來(lái)確定要調(diào)用哪個(gè)方法。
下面是一個(gè)C#方法重載的示例:
public class OverloadExample
{
// 第一個(gè)重載方法,接受一個(gè)整數(shù)參數(shù)
public void DoSomething(int number)
{
Console.WriteLine("Called with integer: " + number);
}
// 第二個(gè)重載方法,接受一個(gè)字符串參數(shù)
public void DoSomething(string text)
{
Console.WriteLine("Called with string: " + text);
}
// 第三個(gè)重載方法,接受一個(gè)整數(shù)和一個(gè)字符串參數(shù)
public void DoSomething(int number, string text)
{
Console.WriteLine("Called with integer and string: " + number + ", " + text);
}
}
在這個(gè)例子中,DoSomething
方法被重載了三次,每次都有不同的參數(shù)列表。您可以根據(jù)需要調(diào)用這些方法,編譯器會(huì)根據(jù)傳遞的參數(shù)自動(dòng)選擇正確的方法版本。
請(qǐng)注意,方法重載要求方法的返回類(lèi)型不同,或者即使返回類(lèi)型相同,它們的返回類(lèi)型簽名也不同。在上面的示例中,所有重載的DoSomething
方法都返回void
,因此它們滿(mǎn)足方法重載的條件。但是,如果方法的返回類(lèi)型不同,那么這些方法就不能被視為重載。