public class test
{
public void xov() { return; }
public string xov() { return null; }
public int xov() { return 0; }
}
public class p
{
public p()
{
test v = new test();
v.xov();// Here i cann't use defined overloads :(
}
}
我可以通过参数重载方法,但为什么我不能通过返回类型重载方法?
答案 0 :(得分:6)
返回类型不被视为方法签名的一部分。也就是说,如果方法仅因返回类型而不同,则不能重载方法。
答案 1 :(得分:2)
致电
int x = Add(5,6);
可能不同于:
string y = Add(5,6);
但如果没有人读取返回类型怎么办?
Add(5,6);
编译器如何知道调用了哪个添加? 所以这个选项不合法。
答案 2 :(得分:1)
方法的返回类型不是方法签名的一部分 出于方法重载的目的。但是,它是其中的一部分 确定a之间的兼容性时方法的签名 委托及其指向的方法。