Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按返回类型重载?_C#_.net_Syntax Error - Fatal编程技术网

C# 按返回类型重载?

C# 按返回类型重载?,c#,.net,syntax-error,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() {

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

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

呼叫

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 :(  
    }   
} 
可能不同于:

int x =  Add(5,6);
但是如果没有人读取返回类型呢

string y = Add(5,6);
编译器如何知道调用了哪个add? 所以这个选择是不合法的

方法的返回类型不是方法签名的一部分 用于方法重载的目的。然而,这是问题的一部分 在确定 委托及其指向的方法

Add(5,6);