c# - 函数重载

标签 c# .net

让我们假设我定义了这三个方法:

int F1(int, int);
int F1(float, float);
Float F1(int, int);

我在这里调用方法 F1:

Console.writeline(F1(5,6).ToString()));

它将调用哪个方法,为什么?

最佳答案

第一个和第三个函数不会在同一个命名空间中编译。

这是因为函数签名是根据参数的类型和数量来区分的,这些都是一样的。返回类型不被视为方法签名的一部分。

如果 namespace 中只有第一个和第二个(或第二个和第三个),将调用最合适的那个(传入整数类型的那个,因为您正在传递整数)。

Eric Lippert 有一些很棒的 blog entries关于 C# 的微妙之处。

关于c# - 函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2651413/

相关文章:

C#快速图表近似比较算法

c# - .net compact/xna 3.1 for xbox 360 中的 Rx 扩展/并行任务库?

c# - WPF 绑定(bind)命令到 ContextMenu

c# - 效率 : Func<T>, 与 T 的实例

c# - 此正则表达式中单引号的用途是什么?

.net - Threading.Timer与Forms.Timer

c# - 在运行时动态更改对 dll 的引用

.net - 为什么我的单元测试可以在 Visual Studio 2010 中运行,而不能在 Jenkins 中运行?

c# - 使用 C# 创建 XML 文件

c# - 如何将api版本相关数据设置为httpcontext以在.net core中进行单元测试?