C#重载方法的用法
在 C# 中,重载方法是指方法名相同,但参数的数据类型、个数或顺序不同的方法。
只要类中有两个以上的同名方法,但是使用的参数类型、个数或顺序不同,在调用时,编译器即可判断在哪种情况下调用哪种方法。
例如,创建一个控制台应用程序,定义一个 Add 方法,该方法有 3 种重载形式,分别用来计算两个 int 类型数据的和、计算一个 int 类型数据和一个 double 类型数据的和、计算 3 个 int 类型数据的和;然后在 Main 方法中分别调用 Add 方法的 3 种重载形式,并输出计算结果,代码如下:
1) 重载方法不能仅是返回值类型不同,因为返回值类型不是方法签名的一部分。
2) 重载方法不能仅根据参数是否声明为 ref、out 或者 params 来区分。
只要类中有两个以上的同名方法,但是使用的参数类型、个数或顺序不同,在调用时,编译器即可判断在哪种情况下调用哪种方法。
例如,创建一个控制台应用程序,定义一个 Add 方法,该方法有 3 种重载形式,分别用来计算两个 int 类型数据的和、计算一个 int 类型数据和一个 double 类型数据的和、计算 3 个 int 类型数据的和;然后在 Main 方法中分别调用 Add 方法的 3 种重载形式,并输出计算结果,代码如下:
class Program
{
//定义方法Add,返回值的类型为int类型,有两个int类型的参数
public static int Add(int x, int y)
{
return x + y;
}
public double Add(int x, double y)//重载方法Add,它与第一个方法的参数类型不同
{
return x + y;
}
public int Add(int x, int y, int z)//重载方法Add,它与第一个方法的参数个数不同
{
return x + y + z;
}
static void Main(string[] args)
{
Program program = new Program();//创建类对象
int x = 3;
int y = 5;
int z = 7;
double y2 = 5.5;
//根据传入的参数类型及参数个数的不同,调用不同的Add重载方法
Console.WriteLine(x + "+" + y + "=" + program.Add(x, y));
Console.WriteLine(x + "+" + y2 + "=" + program.Add(x, y2));
Console.WriteLine(x + "+" + y + "+" + z + "=" + program.Add(x, y, z));
Console.ReadLine();
}
}
程序运行结果如下:
3+5=8
3+5.5=8.5
3+5+7=15
1) 重载方法不能仅是返回值类型不同,因为返回值类型不是方法签名的一部分。
2) 重载方法不能仅根据参数是否声明为 ref、out 或者 params 来区分。
ICP备案:
公安联网备案: