c# - ReadOnlyCollection<T> 必须是不可变的

标签 c# architecture immutability readonly

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

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

最佳答案

ReadOnlyCollection<T> class 不是为了提供一个不可变的集合,而是一个围绕可变列表的“只读”包装器。不过,底层列表仍然始终是可变的,并且对列表的更改将暴露给只读集合。

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

关于c# - ReadOnlyCollection<T> 必须是不可变的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17153976/

相关文章:

c# - 将对象转换为 IEnumerable

c# - C# 中基于 XML 的项目文件的设计模式

java - java 中的多线程和异常处理的责任链

javascript - 如何使用 Immutability Helpers 推送数组中的第一个元素

arrays - 在 Scala 中做不可变字节数组的最有效方法是什么?

c# - 如何在 EWS API 上下载特定文件附件

c# - 如何启用迁移以在 MVC4 中更新我的数据库?

architecture - 如何在从单体架构过渡到微服务架构之间管理多个暂存环境

android - 需要设计一个android应用的架构设计

python - 是否可以在 python 函数中强制数据不变性?