C# 方法重载

方法重载是,两个方法必须要方法名相同,但参数类型或个数必须要有所不同,否则重载就没有意义了。

方法重载的好处:方法重载可在不改变原来方法的基础上,新曾功能。方法重载提供了函数可扩展的能力。

    class Cat
    {
        private string name = "";
        public Cat(string name)
        {
            this.name = name;
        }

        public Cat()
        {
            this.name = "无名";
        }

        public string Shout()
        {
            return "我的名字叫"+name +"喵";
        }
    }
这里第一个Cat(String name)和第二个Cat()方法名相同,参数类型不同,一个是String name,一个是没有参数 
C# 方法重载是面向对象的一种特性,模拟现实世界中做同样的事情因对象不同实现也不同的情况。比如学校给老师和学生评级,老师按学生满意度,学生按考试分数 [^2]。 ### 原理 在 C# 中,编译器根据调用方法时提供的参数的数量、类型和顺序来确定具体调用哪个重载方法。每个重载方法在编译时会有一个唯一的签名,签名由方法名和参数列表组成。编译器通过匹配调用时的参数与方法签名来找到合适的方法进行调用。与 C 语言不同,C 语言不支持重载,若定义同名但参数不同的函数会报错 [^1]。 ### 使用方法 方法重载需满足一定条件:方法名字相同,但参数不同,参数的差异体现在参数个数、顺序和类型上 [^2][^3]。 ### 示例 以下是一个方法重载的示例代码: ```csharp namespace Test15测试方法重载和递归 { class Program { public static void Add(int a, int b) { Console.WriteLine("Add1"); int sum = a + b; Console.WriteLine(sum); } public static void Add(int a, int b, double c) { Console.WriteLine("Add2"); int sum = (int)(a + b + c); Console.WriteLine(sum); } public static double Add(int a, double b) { Console.WriteLine("Add3"); Console.WriteLine(a + b); return a + b; } static void Main(string[] args) { Add(10, 3.1); } } } ``` 在上述代码中,定义了三个名为 `Add` 的方法,它们的参数不同,构成了方法重载。在 `Main` 方法中调用 `Add(10, 3.1)` 时,编译器会根据参数类型自动匹配到 `public static double Add(int a, double b)` 这个方法并执行,最后输出结果 13.1 [^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值