Во многих проектах, над которыми я работаю, всякий раз, когда мне нужно вернуть коллекцию только для чтения, я использую интерфейс IEnumerable
и делаю его специфичным для типа следующим образом:
Public ReadOnly Property GetValues() As IEnumerable(Of Integer)
Get
'code to return the values'
End Get
End Property
В большинстве случаев я вернуть список, но в некоторых функциях и свойствах только для чтения я возвращаю массив, который также служит цели, любезно любезно предоставленной методами расширения.
Мой вопрос: Нарушаю ли я какие-либо принципы дизайна, возвращая IEnumerable < T>
вместо определенных типов (например: List
, HashSet
, Stack
или Массив
s) ?