在我从事的许多项目中,每当我必须返回只读集合时,我都会使用IEnumerable<T>
接口并使其类型特定,如下所示:
Public ReadOnly Property GetValues() As IEnumerable(Of Integer)
Get
'code to return the values'
End Get
End Property
大多数时候,我返回一个列表,但在某些函数和只读属性中,我返回一个数组,该数组也可以通过扩展方法的方式达到目的。
我的问题是我返回是否违反了任何设计原则IEnumerable<T>
s 而不是特定类型(例如:List<T>
, HashSet<T>
, Stack<T>
or Array
s)?
我一般更喜欢IEnumerable<T>
以及。主要的事情是问自己从方法返回什么实际的(甚至是最小的)功能(或者在方法参数的情况下传递给它)。
如果您需要做的只是枚举结果集,那么IEnumerable<T>
正是这样做的。不多也不少。这使您可以在某些情况下灵活地返回更具体的类型(如果需要),而不会破坏方法的占用空间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)