<分区>
重复:Function overloading by return type?
也许这是一个非常愚蠢的问题,但我不明白为什么我不能声明两个具有相同签名但返回类型不同的方法。
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
的情况下,它也会导致编译错误。
谁能看出我在这里做错了什么?我很高兴得到纠正。 :-)