Closed. This question is opinion-based。它当前不接受答案。












想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

2年前关闭。



Improve this question




两者的优点或缺点是什么?

最佳答案

我的指南一向是最具体的,也是最一般的。

数据类型越通用,使用它的代码对数据类型的了解就越少。例如,如果一个方法返回一个集合,我将返回该方法产生的新创建的集合。如果它返回一个内部数据结构,则将其撞到IEnumerable<T>

但是,如果由于它是内部构建的而返回一个数组或List<T>,则保存数据的代码现在可以访问集合中的更多功能。

频谱的另一端,要返回最通用的(在限制范围内)数据类型,则意味着您始终为所有集合返回IEnumerable<T>或类似数据,即使该方法在内部构建了一个新数组并返回了该数组。现在,调用代码必须手动将集合的内容复制到新的数组或列表中(如果这是调用代码需要使用的内容)。

在大多数情况下,这意味着更多不必要的工作。

至于输入,我会使用我可以使用的最通用的类​​型,因此对于集合,除非我特别需要数组或列表或类似的东西,否则我将接受IEnumerable<T>。这样,可以确保调用代码的工作量减少。这可能意味着我必须在内部做一些工作,所以这是一个折衷。

重要的部分是要达到平衡。每次都不要太笼统或太具体。找出合适的类型,并考虑调用代码必须执行的操作才能传递数据或接受代码中的传出数据。工作量越少越好。

关于c# - 从操作方法中返回最特定或最通用的类​​型更好吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3434367/

10-14 10:47
查看更多