重载方法是返回不同数据类型的好还是坏?
我理解重载不能在返回类型上完成,我的意思是关注
1) T Create(T)
2) List<T> Create(List<T>)
我认为如果重载方法返回不同的数据类型,想要得到其他人的想法,这将是违反直觉的吗?
我确实在.Net框架中看到了这样的方法(其中扩展方法)。
我理解这个问题可能会被关闭,因为对于这个问题不会有任何肯定/否定,但我想听听人们如何处理这个问题?
干杯, 阿维纳什
答案 0 :(得分:1)
我不会这样说。当然,你可以做到,但你永远不会知道什么是返回值。
当你看到
时,这有点令人困惑var value = YourClass.Create(AnotherClass.GetResult());
当然,您可以将var
替换为您期望的实际类型,或者在<Type>
之后添加Create
以指示您希望使用哪种超载。
就个人而言,我会选择
T Create<T>(T values)
List<T> CreateMany<T>(List<T> values)
它更加清晰,当有人读取您的代码时,您会立即明白您想要做什么。