必须是ReadOnlyCollection <t>是不可变的</t>

时间:2013-06-17 18:09:26

标签: c# architecture immutability readonly

我正在设计一些使用ReadOnlyCollection<T>的接口来表明这些接口的使用者只能从集合中读取。

然而,提供的集合不是一成不变的,并且会不时变化,我想知道我的设计是否错误。 ReadOnlyCollection<T>的孩子也应该是不可变的吗?

1 个答案:

答案 0 :(得分:7)

ReadOnlyCollection<T>类不是为了提供一个不可变的集合,而是一个围绕一个可变列表的“只读”包装器。但是,基础列表仍然是可变的,对列表的更改将暴露给只读集合。

如果需要在设计中公开真正不可变的集合,则应考虑使用新的Immutable Collections for .NET,并公开相应的不可变集合。