让我们假设我定义了这三个方法:
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/