C#使用Return void和object重叠(string)

时间:2015-06-23 03:32:15

标签: c# overloading

我尝试创建一个返回void的函数的重载函数:

public string Message { get; private set; }

public void Foo (Bar bar)
{
    Message = "Hello World!";
}

public string Foo (Bar bar)
{
    return "Hello World!";
}

但是我得到Compile Time错误说:

 Type 'Foo' already defines a member called with the same   parameter types.

有什么方法可以实现那种过载吗?

2 个答案:

答案 0 :(得分:6)

不,没有办法超载。

编译器在此行上调用什么方法:

Foo (new Bar());

这对于两者都是完全有效的语法,无法区分,也不会发生。

方法重载必须具有不同的参数。只是不同的回报类型是不够的。

答案 1 :(得分:1)

不,你不能那样做。返回类型更改不是方法签名更改。以下是关于重载指南的link讨论