C#重载,返回void和object(字符串)

本文关键字:object 字符串 void 重载 返回 | 更新日期: 2023-09-27 17:59:08

我试图创建一个重载函数,返回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.

有什么办法可以让我达到那种超负荷的状态吗?

C#重载,返回void和object(字符串)

不,不可能有这样的过载。

编译器会在这一行调用什么方法:

Foo (new Bar());

对于两者来说,这将是一种完全有效的语法,无法区分,而且这种情况决不能发生。

方法重载必须具有不同的参数。仅仅使用不同的返回类型是不够的。

不,你不能那样做。返回类型更改不是方法签名更改。这是关于过载的指导方针的链接