C# 使用 Return void 和 object (string) 重载
C# Overloading with Return void and object (string)
我尝试创建一个 return 无效的重载函数或像这样的字符串:
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.
有什么方法可以实现这种超载吗?
不,没有办法有这样的超载。
编译器会在这一行调用什么方法:
Foo (new Bar());
对于无法区分的两者来说,这将是完全有效的语法,而且这种情况绝不能发生。
方法重载必须有不同的参数。只是不同的 return 类型是不够的。
不,你不能那样做。 Return 类型更改不是方法签名更改。这是 link 关于重载指南的讨论
我尝试创建一个 return 无效的重载函数或像这样的字符串:
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.
有什么方法可以实现这种超载吗?
不,没有办法有这样的超载。
编译器会在这一行调用什么方法:
Foo (new Bar());
对于无法区分的两者来说,这将是完全有效的语法,而且这种情况绝不能发生。
方法重载必须有不同的参数。只是不同的 return 类型是不够的。
不,你不能那样做。 Return 类型更改不是方法签名更改。这是 link 关于重载指南的讨论