重复:返回类型的函数重载?
也许这是一个非常愚蠢的问题,但我不明白为什么当它们具有不同的返回类型时,我不能声明具有相同签名的两个方法。
public class MyClass
{
private double d = 0;
public double MyMethod()
{
return d;
}
public string MyMethod()
{
return d.ToString();
}
}
我收到一个编译错误,指出该类已经定义了具有相同参数类型的成员。
(显然我在我的代码中使用它的方式并不像我的示例代码那么简单......但我认为它可以理解这个想法。)
我是否遗漏了一些关于 OO 设计的东西,这使得我正在尝试做一个 OOP 反模式?只要我明确告诉它我想要哪一个,编译器当然应该能够确定我正在尝试使用哪种方法。
鉴于MyClass myClass = new MyClass();
我希望以下代码能够工作:
double d = myClass.MyMethod();
string s = myClass.MyMethod();
我希望以下代码有问题:
var v = myClass.MyMethod();
但即使在var
它的情况下也会导致编译错误。
谁能看到我在这里做错了什么?我很高兴得到纠正。:-)