我正在设计一些接口(interface)来使用 ReadOnlyCollection<T>
表明这些接口(interface)的使用者只能从集合中读取。
然而,所提供的集合并不是一成不变的,并且会不时发生变化,我想知道我的设计是否有误。应该 child 的一个ReadOnlyCollection<T>
也是不可变的吗?
最佳答案
ReadOnlyCollection<T>
class 不是为了提供一个不可变的集合,而是一个围绕可变列表的“只读”包装器。不过,底层列表仍然始终是可变的,并且对列表的更改将暴露给只读集合。
如果您需要在设计中公开一个真正不可变的集合,您应该考虑使用新的 Immutable Collections for .NET ,并公开适当的不可变集合。
关于c# - ReadOnlyCollection<T> 必须是不可变的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17153976/