正确的方法重载方法

时间:2013-11-17 06:44:51

标签: .net overloading

重载方法是返回不同数据类型的好还是坏?

我理解重载不能在返回类型上完成,我的意思是关注

1) T Create(T)

2) List<T> Create(List<T>)

我认为如果重载方法返回不同的数据类型,想要得到其他人的想法,这将是违反直觉的吗?

我确实在.Net框架中看到了这样的方法(其中扩展方法)。

我理解这个问题可能会被关闭,因为对于这个问题不会有任何肯定/否定,但我想听听人们如何处理这个问题?

干杯, 阿维纳什

1 个答案:

答案 0 :(得分:1)

我不会这样说。当然,你可以做到,但你永远不会知道什么是返回值。

当你看到

时,这有点令人困惑
var value = YourClass.Create(AnotherClass.GetResult());

当然,您可以将var替换为您期望的实际类型,或者在<Type>之后添加Create以指示您希望使用哪种超载。

就个人而言,我会选择

T Create<T>(T values)
List<T> CreateMany<T>(List<T> values)

它更加清晰,当有人读取您的代码时,您会立即明白您想要做什么。