首页 > 编程笔记 > C#笔记

C#重载方法的用法

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(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 来区分。

相关文章