C#中的方法重载(附带实例)
方法重载是指方法名称相同,但参数的数据类型、个数或顺序不同的方法。
在 C# 中,只要类中有两个以上的同名方法,但是使用的参数类型、个数或顺序不同,在调用时,编译器即可判断在哪种情况下调用哪种方法。
【实例】加法的不同运算形式。首先创建一个控制台应用程序,并定义一个 Add() 方法,该方法有 3 种重载形式,分别用来计算两个 int 类型数据的和、一个 int 类型和一个 double 类型数据的和、3 个 int 类型数据的和;然后在 Main 方法中分别调用 Add 方法的 3 种重载形式,并输出计算结果。代码如下:
定义重载方法时,需要注意以下两点:
在 C# 中,只要类中有两个以上的同名方法,但是使用的参数类型、个数或顺序不同,在调用时,编译器即可判断在哪种情况下调用哪种方法。
【实例】加法的不同运算形式。首先创建一个控制台应用程序,并定义一个 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("第1种重载形式: " + x + "+" + y + "=" + Program.Add(x, y)); Console.WriteLine("第2种重载形式: " + x + "+" + y2 + "=" + program.Add(x, y2)); Console.WriteLine("第3种重载形式: " + x + "+" + y + "+" + z + "=" + program.Add(x, y, z)); Console.ReadLine(); } }程序的运行结果为:
第1种重载形式: 3+5=8
第2种重载形式: 3+5.5=8.5
第3种重载形式: 3+5+7=15
定义重载方法时,需要注意以下两点:
- 重载方法不能仅在返回值类型上不同,因为返回值类型不是方法签名的一部分;
- 重载方法不能仅根据参数是否声明为 ref、out 或者 params 来区分。