当前位置: 首页 > news >正文

C#中函数重载的说明

一.函数重载的基本概念

C# 中的函数重载是指在同一个类中定义多个同名的函数,但这些函数的参数类型、参数个数、参数顺序等不同,以便适应不同的调用需求,增加代码的兼容性。

二.函数重载的作用

2.1定义多个相类似的函数,减少函数的数量,避免命名空间的相互干扰导致的误解;

2.2提升程序的可读性,使得代码的逻辑性更直观;

三.函数重载的需满足的条件

3.1函数名必须相同;
3.2函数的参数类型、参数个数、参数顺序必须不同。

四.实例说明(4种)

4.1参数数量不同

class Program
{
    static void Main(string[] args)
    {
        int result1 = Add(1, 2);
        int result2 = Add(1, 2, 3);
        
        Console.WriteLine("Result1: " + result1); // 输出:3
        Console.WriteLine("Result2: " + result2); // 输出:6       
        Console.ReadLine();
    } 
    public int Add(int num1, int num2)
    {
        return num1 + num2;
    }
 
    public int Add(int num1, int num2, int num3)
    {
        return num1 + num2 + num3;
    }
}

4.2参数类型不同 

using System;
 
class Program
{
    static void Main(string[] args)
    {
        int num1 = 2;
        float num2 = 1.5f;
        string str = "Hello world!";
 
        MyFunction(num1);
        MyFunction(num2);
        MyFunction(str);
 
        Console.ReadLine();
    }
 
    public void MyFunction(int num)
    {
        Console.WriteLine("输入的是int " + num);
    }
 
    public void MyFunction(float num)
    {
        Console.WriteLine("输入的是float: " + num);
    }
 
    public void MyFunction(string str)
    {
        Console.WriteLine("输入的是 string: " + str);
    }
}
 

4.3参数数量相同但是顺序不同

using System;
 
public class Speaker
{
    public void Speak(string message)
    {
        Console.WriteLine("我说:" + message);
    }
 
    public void Speak(string message, string language)
    {
        Console.WriteLine("我用" + language + "说:" + message);
    }
 
    public void Speak(int times, string message)
    {
        Console.WriteLine("我重复" + times + "次说:" + message);
    }
 
    public void Speak(string message, int times)
    {
        Console.WriteLine("我说" + message + times + "次");
    }
}
 
public class Program
{
    public static void Main(string[] args)
    {
        Speaker speaker = new Speaker();
        speaker.Speak("你好!");
        speaker.Speak("Hello!", "English");
        speaker.Speak(3, "再见!");
        speaker.Speak("Goodbye!", 2);
    }
}
 

4.4 ref和out修饰的变量也可以当做一种新变量

        private void Main()
        {
            int a = 5;
            int b = 10;
            int result1 = Add(a, b);
            MessageBox.Show("加总值: " + result1); // Output: 15


            Subtract(ref a, out b);
            MessageBox.Show((a+b).ToString()); //Output: 5


            double c = 2.5;
            double d = 3.5;
            double result3 = Add(c, d);
            MessageBox.Show("加总值: " + result3); // Output: 6.0
        }

        static int Add(int num1, int num2)
        {
            return num1 + num2;
        }

        static double Add(double num1, double num2)
        {
            return num1 + num2;
        }

        private static void Subtract(ref int num1, out int num2)
        {
            num2 = 5;
            num1 = num1-num2;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Main();
        }

五.总结:

函数重载:一个方法名称,多个应用版本;

相同点:方法的名称一致;

不同点:参数的个数,参数的类型,参数的顺序不能完全一致;

注意:方法的返回值类型不一致,以及static修饰的不能算重载。

http://www.lryc.cn/news/461335.html

相关文章:

  • 图论day56|广度优先搜索理论基础 、bfs与dfs的对比(思维导图)、 99.岛屿数量(卡码网)、100.岛屿的最大面积(卡码网)
  • 源码编译方式安装htppd软件
  • MES制造执行系统原型图动端 Axure原型 交互设计 Axure实战项目
  • flutter 仿淘宝推荐二级分类效果
  • 报错 - LangChain AgentExecutor - ‘function‘ object has no attribute ‘get‘
  • 【DIY小记】通过降低电压和Process Lasso工具优化CPU超频表现
  • 3、Docker搭建MQTT及Spring Boot 3.x集成MQTT
  • 六种定时任务记录
  • Dos下编译环境搭建和C运行程序生成
  • 【MySQL】入门篇—SQL基础:数据查询语言(DQL):复杂的SELECT语句
  • Appium环境搭建、Appium连接真机
  • 【X线源】关于滨松MCS2软件的说明
  • 【深度学习代码调试2】环境配置篇(中) -- 列出conda环境中所有env的pytorch版本
  • C语言运算符和表达式
  • RetinaNet 分类头和回归头的网络结构分析
  • app测试有哪些内容?广东深圳软件测试机构推荐
  • 新乡医学院第一附属医院启动巨额医疗设备整体维保招标
  • Linux——综合实用操作
  • 一个Idea:爆改 T480
  • 网络编程(21)——通过beast库快速实现http服务器
  • Logback
  • Sub - Adjacent Transformer — 对AT的有趣改进
  • 『Mysql集群』Mysql高可用集群之主从复制 (一)
  • PHP获取图片属性(size, width, 和 height)的函数
  • MySQL启动失败解决方案
  • Spring Boot中使用MyBatis-Plus和MyBatis拦截器来实现对带有特定注解的字段进行AES加密。
  • Python GUI 编程:tkinter 初学者入门指南——框架、标签框架
  • Mac 远程 Windows 等桌面操作系统工具 Microsoft Remote Desktop for Mac 下载安装详细使用教程
  • 初级网络工程师之从入门到入狱(四)
  • MinIO配置与使用