方法重载 是一种允许在同一个类中定义多个方法名相同但参数列表不同的机制。
方法重载的原因:例如一个类包含两个或多个同名方法,就会发生方法重载。
方法 的 唯一性 取决于方法名、参数数据类型或参数数量的差异。
方法重载的作用:提供调用方法的多种方式,可以为同一个功能实现多种不同的方式,而无需为每种方式编写多个不同的方法,提高程序的可读性和复用性。
在 C# 中,方法重载必须满足以下条件:
方法名称必须相同:所有重载的方法必须使用相同的名称。
参数列表必须不同:参数列表的不同可以体现在参数的类型、个数或顺序上。
回值类型不参与重载判定:即使两个方法的返回值类型不同,只要它们的参数列表相同,编译器也会报错。
例子:
using System;
namespace MethodOverloadingExample
{
class Program
{
static void Main(string[] args)
{
Program p = new Program();
p.Show(); // 调用无参数的方法
p.Show(10); // 调用带一个int参数的方法
p.Show("Hello"); // 调用带一个string参数的方法
}
public void Show()
{
Console.WriteLine("Nothing");
}
public void Show(int number)
{
Console.WriteLine(number);
}
public void Show(string message)
{
Console.WriteLine(message);
}
}
}
在这个例子中,Show
方法被重载了三次,分别接受无参数、一个int
类型参数和一个string
类型参数。编译器会根据调用时传递的参数类型来决定调用哪个方法。