在我从事的许多项目中,每当我必须返回只读集合时,我都会使用IEnumerable<T>
接口并使其类型特定,如下所示:
Public ReadOnly Property GetValues() As IEnumerable(Of Integer)
Get
'code to return the values'
End Get
End Property
大多数时候,我返回一个列表,但在某些函数和只读属性中,我返回一个数组,该数组也符合扩展方法的目的。
我的问题是我是否通过返回s 而不是特定类型(例如:、、或s)违反了任何设计原则IEnumerable<T>
List<T>
HashSet<T>
Stack<T>
Array
?