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;

}

}

}

运行该程序:

相关推荐
H.莓飛10 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
吴可可12311 小时前
富怡CAD二次开发指南
c#
1-1=011 小时前
C# IO和序列化
c#·.net·.netcore
j7~11 小时前
【C++ 八股文】(篇四)C++11 新特性
开发语言·c++·面试·c++11·八股文
eggwyw11 小时前
C++中大括号的用法合集
开发语言·c++
xiaoye-duck12 小时前
《C++ 项目:手写大模型接入 SDK》本地 Ollama 部署与适配
开发语言·网络·c++·语言模型
联犀12 小时前
联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms
开发语言·golang·音视频
octopus_c12 小时前
STL 之 string:auto 与范围 for、常用接口、模拟实现与深浅拷贝
开发语言·c++·算法
Nerd(BUG版)12 小时前
KMP学习day5--Kotlin Flow异步流基础
开发语言·学习·kotlin
寂寞的船12 小时前
【Unity Bug挑战】第10期 SerializeReference 内存泄漏之谜
unity·c#·游戏引擎·bug