C# 方法的重载(Overload)

在C#中,方法的重载(Overloading)是指在一个类中可以有多个同名的方法,只要这些方法具有不同的方法签名(即参数的数量、类型或顺序不同)。这使得你可以使用相同的方法名称来执行相似但参数不同的操作,提高了代码的复用性和可读性。

方法签名(method signature)由方法的名称、类型形参的个数和它的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成。

方法签名不包含返回类型。

class Calculator

{

public int Add(int a, int b)

{

return a + b;

}

public double Add(double a, double b)

{

return a + b;

}

public int Add(int a, int b, int c)

{

return a + b + c;

}

}

实例构造函数签名由它的每一个形参(按从左到右的顺序)的类型和种类(值、引用或输出)组成。

重载决策(到底调用哪一个重载):用于在给定了参数列表和一组候选函数成员的情况下,根据这些,选择一个最佳函数成员来实施调用。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace OverloadExample

{

internal class Program

{

static void Main(string\[\] args)

{

Calculator c=new Calculator();

int c1=c.Add(2, 3);

double c2 = c.Add(2D, 3D);

int c3 = c.Add(1, 2, 3);

Console.WriteLine(c1);

Console.WriteLine(c2);

Console.WriteLine(c3);

Console.ReadLine();

}

}

class Calculator

{

public int Add(int a, int b)

{

return a + b;

}

public double Add(double a, double b)

{

return a + b;

}

public int Add(int a, int b, int c)

{

return a + b + c;

}

}

}

运行该程序:

相关推荐
linx2952 小时前
单元七 · 零基础路线图-第 1–3 周·变量、类型与字符串
c语言·开发语言·数据结构·c++·算法
geovindu2 小时前
java: Strategy Pattern
java·开发语言·后端·设计模式·策略模式·行为模式
念越2 小时前
Python基础语法(一):变量、类型与程序控制流
开发语言·网络·python
资讯综合3 小时前
2026全国云渲染网站排名 不同需求用户适配榜单
开发语言·前端·javascript
aramae3 小时前
模拟实现strcpy(字符串拷贝)(C语言)
java·c语言·开发语言·算法
PHP实战开发录3 小时前
PHP接口超时后为什么任务还在跑
开发语言·前端·php·开发
m0_734571763 小时前
深入理解C++ 构造函数<十一> initializer_list 构造
开发语言·c++
数据狐(Datafox)3 小时前
京东商品详情API接口解析(附 JSON 样例)
java·开发语言·json
Wang's Blog3 小时前
Java框架快速入门: Spring Security+OAuth2之深度定制UserDetailsService与密码无缝升级
java·开发语言·spring
白远山3 小时前
智慧场馆解决方案小程序系统开发实战与架构设计指南
java·开发语言·小程序·架构