1

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

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

4

1 回答 1

7

该类ReadOnlyCollection<T>并非旨在提供不可变集合,而是围绕可变列表的“只读”包装。但是,底层列表仍然始终是可变的,并且对列表的更改将暴露给只读集合。

如果您需要在设计中公开一个真正不可变的集合,您应该考虑使用新的 .NET不可变集合,并公开适当的不可变集合。

于 2013-06-17T18:12:29.457 回答