当前位置: 首页 > 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修饰的不能算重载。

相关文章:

C#中函数重载的说明

一.函数重载的基本概念 C# 中的函数重载是指在同一个类中定义多个同名的函数,但这些函数的参数类型、参数个数、参数顺序等不同,以便适应不同的调用需求,增加代码的兼容性。 二.函数重载的作用 2.1定义多个相类似的函数,减少函…...

图论day56|广度优先搜索理论基础 、bfs与dfs的对比(思维导图)、 99.岛屿数量(卡码网)、100.岛屿的最大面积(卡码网)

图论day56|广度优先搜索理论基础 、bfs与dfs的对比(思维导图)、 99.岛屿数量(卡码网)、100.岛屿的最大面积(卡码网)) 广度优先搜索理论基础bfs与dfs的对比(思维导图)&…...

源码编译方式安装htppd软件

一.源码编译安装httpd软件 1.安装阿帕奇的依赖,安装apr软件,阿帕奇正常运行的环境这个环境就是apr。 2.安装apr-util软件,主要提供针对apr环境的管理工具, 3.安装阿帕奇软件即httpd软件。 如上图所示,就是三个软件的…...

MES制造执行系统原型图动端 Axure原型 交互设计 Axure实战项目

MES制造执行系统原型移动端 Manufacturing Execution System prototype MES制造执行系统原型图移动端是专门为制造执行系统设计的移动端是一个可视化的设计。用于展示和演示该系统在移动设备上的功能和界面。通过原型图,可以清晰地了解制造执行系统在移动端的各个…...

flutter 仿淘宝推荐二级分类效果

先看效果 一开始 用的PageView 做的, 然后重写PageScrollPhysics一顿魔改, 最后发现还是有一些小bug。 后面又想到pageview 能做,listview肯定也能做,最后用ListView加GridView 把功能实现了。 listview 实现pageview 的分页滑动…...

报错 - LangChain AgentExecutor - ‘function‘ object has no attribute ‘get‘

使用 AgentExecutor 调用了使用两个 tool 的agent,报一下错误: 如果 agent 只使用 一个tool,没有报错 File "/Users/xx/miniconda3/envs/env1/lib/python3.11/site-packages/pydantic/_internal/_validators.py", line 44, in sequ…...

【DIY小记】通过降低电压和Process Lasso工具优化CPU超频表现

又到了创作纪念日,秉承着笔耕不辍的理念,笔者还是继续分享一下DIY日常。 在上一篇文章当中,笔者介绍了一些作为新手小白超频CPU和NVIDIA显卡的经验。今天又有了更新,笔者通过降低CPU工作电压,并且结合Process Lasso对…...

3、Docker搭建MQTT及Spring Boot 3.x集成MQTT

一、前言 本篇主要是围绕着两个点,1、Docker 搭建单机版本 MQTT(EMQX),2、Spring Boot 3.x 集成 MQTT(EMQX); 而且这里的 MQTT(EMQX)的搭建也只是一个简单的过程&#x…...

六种定时任务记录

1、java自带的Timer Timer是java中自带的类。 优点:使用简单,缺点是当添加并执行多个任务时,前面任务的执行用时和异常将影响到后面任务。 Timer timer new Timer();timer.schedule(new TimerTask() {int i 0;Overridepublic void run() …...

Dos下编译环境搭建和C运行程序生成

文章目录 前言一、需要准备的Tool二、搭建步骤 前言 因为工作需要,需要搭建个Dos下的编译环境来进行Code App开发,如下记录下搭建过程。 一、需要准备的Tool 编译环境:Win10/win11 编译工具: DOSBox0.74 Turboc2.7z 二、搭建步骤 1.双击压…...

【MySQL】入门篇—SQL基础:数据查询语言(DQL):复杂的SELECT语句

在实际应用中,复杂的SELECT语句可以帮助我们从多个表中提取相关信息,进行数据分析,生成报告,甚至进行数据挖掘。 掌握复杂的SELECT语句对于数据分析师、数据库管理员和开发者来说是必不可少的技能。 应用场景: 多表查…...

Appium环境搭建、Appium连接真机

文章目录 一、安装Android SDK二、安装Appium-desktop三、安装Appium Inspector 一、安装Android SDK 首先需要安装jdk,这里就不演示安装jdk的过程了 SDK下载地址:Android SDK 下载 1、点击 Android SDK 下载 -> SKD Tools 2、选择对应的版本进行下…...

【X线源】关于滨松MCS2软件的说明

【X线源】关于滨松MCS2软件的说明 1.软件背景2.MCS2界面3.MCS2操作4.常见问题 1.软件背景 滨松为了方便客户将滨松MFX集成进自己的系统,滨松提供了MFX二次开发相关的信息和Demo代码。参考博客说明: 【X线源】关于滨松MFX二次开发demo示例简介 https://…...

【深度学习代码调试2】环境配置篇(中) -- 列出conda环境中所有env的pytorch版本

【深度学习代码调试2】环境配置篇(中) -- 列出conda环境中所有env的pytorch版本 写在最前面如何检查所有 Conda 环境中的 PyTorch 版本(并重点提示 PyTorch 1.7.1 版本)1. 列出所有 Conda 环境2. 检查每个环境中的 PyTorch 版本方…...

C语言运算符和表达式

1.C语言赋值运算符实例讲解 C 使用运算符(operator)来代表算术运算。例如,运算符可以使它两侧的值加在一起。如果您觉得术语“运算符”听起来比较奇怪,那么请您记住那些东西总得有个名称。与其被称之为“那些东西”或“数学符号”,被称之为“…...

RetinaNet 分类头和回归头的网络结构分析

RetinaNet 是由 Facebook AI Research(FAIR)在 2017 年提出的一种高效的一阶段(one-stage)目标检测算法。相比于两阶段(two-stage)方法,RetinaNet 通过引入 Focal Loss 解决了类别不平衡问题&am…...

app测试有哪些内容?广东深圳软件测试机构推荐

随着智能手机的普及,手机应用app越来越多,因此,企业为了更好的保证用户留存率,开发完app之后必须进行app测试。一个成功的app,软件测试是必不可少的一步,那么app测试需要进行哪些测试内容呢?深圳又有哪些靠…...

新乡医学院第一附属医院启动巨额医疗设备整体维保招标

鉴于项目本身金额巨大,又恰逢省委巡视组进驻期间,该项目备受瞩目,在业内和省内医疗圈引起了极大轰动。全国影响力最大、实力最强的企业全部参与其中,民营企业上海柯渡医疗、上海昆亚医疗以其创新的服务模式和高效的管理机制备受关注;央企通用技术集团凯思轩达医疗科技凭借雄厚的…...

Linux——综合实用操作

目录 IP与主机 ping命令 wget命令 curl命令 端口:设备与外界通讯交流的出入口 进程管理 Linux top命令Windows 任务管理器 磁盘信息监控 df iostat 网络状态监控 sar -n DEV命令 环境变量 上传,下载 压缩 解压tar,zip&#xff…...

一个Idea:爆改 T480

爆改 T480 准备大改 T480,家里有一台闲置很久的 T480,不舍得扔,打算升级一下。看了几位up主的视频后,决定动手改造。 计划如下 网卡:加装4G网卡硬盘:更换为 1T 的 NVMe 2280 固态硬盘内存:升…...

快速掌握socat-windows:实用网络数据转发工具完全指南

快速掌握socat-windows:实用网络数据转发工具完全指南 【免费下载链接】socat-windows unofficial windows build of socat http://www.dest-unreach.org/socat/ 项目地址: https://gitcode.com/gh_mirrors/so/socat-windows socat-windows是一款功能强大的跨…...

用ESP32打造智能家居控制中心:HTTP服务器实战教程(含WiFi配置)

用ESP32构建智能家居控制中枢:从WiFi配置到HTTP交互全解析 清晨醒来,窗帘自动拉开到预设角度,咖啡机开始研磨新鲜豆子,空调将室温调节至最舒适状态——这样的智能家居场景正逐渐从科幻走向现实。而实现这一切的核心,往…...

NAT技术实战解析:从基础配置到高级应用

1. NAT技术入门:从零开始理解地址转换 第一次接触NAT这个概念时,我正被公司派去解决一个棘手的网络问题——办公室里的打印机突然无法被外部分支机构访问。折腾了半天才发现,原来是路由器的NAT配置被误改了。这次经历让我深刻体会到&#xff…...

Flux 图像生成 API 集成指南

在本篇文章中,我们将为您介绍 Flux 图像生成 API 的集成步骤。通过该 API,您可以输入自定义参数以生成官方的 Flux 图像。Flux 图像生成 API 是一个强大的工具,适用于需要图像生成的应用场景,如内容创作、游戏开发和广告设计等。 …...

突破大文件传输瓶颈:aliyunpan快传链接技术全解析

突破大文件传输瓶颈:aliyunpan快传链接技术全解析 【免费下载链接】aliyunpan 阿里云盘命令行客户端,支持JavaScript插件,支持同步备份功能。 项目地址: https://gitcode.com/GitHub_Trending/ali/aliyunpan 大文件传输的现实痛点&…...

Umi-OCR:免费开源OCR工具的高效解决方案与全方位指南

Umi-OCR:免费开源OCR工具的高效解决方案与全方位指南 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHu…...

数字健康时代的“价值共生“:APP如何用技术重新定义身体数据的意义

一、从"数字佃农"到"价值共创者":健康数据经济的范式转移2024年,全球健康经济规模达到6.8万亿美元,数字健康板块增速领跑全行业。在这场变革中,一个核心命题浮出水面:当我们的身体数据成为驱动AI进…...

掌握4大核心策略,让你的暗黑3效率提升200%:D3KeyHelper自动化配置全指南

掌握4大核心策略,让你的暗黑3效率提升200%:D3KeyHelper自动化配置全指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3Ke…...

Dify工作流HTTP请求配置全攻略:从基础到进阶的系统优化指南

Dify工作流HTTP请求配置全攻略:从基础到进阶的系统优化指南 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-…...

别再死记硬背了!用‘抽奖游戏’和‘股票涨跌’轻松搞懂马尔可夫链的几种变体

用生活故事解锁马尔可夫链的三种高级玩法 想象你正站在商场抽奖转盘前,每次转动都可能改变你的命运——这像极了马尔可夫链中状态的随机跃迁。但真实世界远比简单转盘复杂:朋友的喜怒无常像隐藏在表情背后的秘密(隐马尔可夫模型)…...