私が取り組んでいる多くのプロジェクトでは、読み取り専用のコレクションを返す必要があるときはいつでも、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
のでしょうか?