可能重复:
返回类型的函数重载?
嗨,
在重载时我们说参数列表必须按数字或类型不同,但在返回类型上无关紧要,为什么这样呢?
功能
//Function 1
int Add(int a, int b)
{return a+b;}
//Function 2
Double Add(Double a, Double b)
{return a+b;}
//Function 3
Double Add(int a, int b)
{return (Double)a+b;}
Run Code Online (Sandbox Code Playgroud)
函数1 2是重载的,其中函数1和3不是??? 原因???
任何帮助都非常感谢.
编译器需要在编译时知道您要调用哪个函数.如果它们仅因返回类型而不同,则通常不可能.例如,考虑一下:
var result = Add(1, 2);
Run Code Online (Sandbox Code Playgroud)
要么
Console.WriteLine(Add(1, 2));
Run Code Online (Sandbox Code Playgroud)
编译器无法知道您是否要执行函数1或3.即使您这样做了
double x = Add(1, 2);
Run Code Online (Sandbox Code Playgroud)
编译器不会知道你是否(a)想要调用函数3或(b)调用函数1并进行从int到double的隐式扩展转换.
归档时间: |
|
查看次数: |
4330 次 |
最近记录: |