【发布时间】:2014-01-09 10:26:27
【问题描述】:
我想深入了解它是否提供了歧义或额外功能:
public class Foo
{
public int Bar(){
//code
}
public string Bar(int a){
//code
}
}
任何对此有任何经验的人,使用不同参数重载返回类型应该是一种不好的做法,是吗?
但是,如果重载是基于返回类型完成的,那么为什么这不起作用。
public class Foo
{
public int Bar(int a){
//code
}
public string Bar(int a){
//code
}
}
如果我们调用 obj.Bar(); 将无法决定调用第一个或第二个函数; ,它应该以错误结束有没有人知道为什么它允许第一个代码 sn-p 运行。
【问题讨论】:
-
你能把你的问题说清楚一点吗?我想大家都误解了你的问题。
-
@ChrisLava 除了答案中给出的含义之外,还有什么其他可能的含义?
-
@Rotem 他说他知道为什么第二个代码 sn-p 失败(“无法决定调用哪个函数”)。所以他明白这一点。但在我看来,他在问“使用不同参数重载返回类型”(第一个代码 sn-p)是否是不好的做法。
-
@ChrisLava 这就是我所认为的 - 并相应地回答了
-
@Rotem 没关系。不是你的错。这个问题可能会更清楚。事实上,整个第二个代码 sn-p 应该消失,他应该只问第一个代码 sn-p 是不是不好的做法。
标签: c# .net oop coding-style