按返回类型重载?

时间:2013-11-17 12:08:39

标签: c# .net syntax-error

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 :(  
    }   
} 

我可以通过参数重载方法,但为什么我不能通过返回类型重载方法?

3 个答案:

答案 0 :(得分:6)

返回类型不被视为方法签名的一部分。也就是说,如果方法仅因返回类型而不同,则不能重载方法。

答案 1 :(得分:2)

致电

int x =  Add(5,6);

可能不同于:

string y = Add(5,6);

但如果没有人读取返回类型怎么办?

Add(5,6);

编译器如何知道调用了哪个添加? 所以这个选项不合法。

答案 2 :(得分:1)

  

方法的返回类型不是方法签名的一部分   出于方法重载的目的。但是,它是其中的一部分   确定a之间的兼容性时方法的签名   委托及其指向的方法。

Link to MSDN Documentation

相关问题