我正在创建一个不可变的类。
我已将所有属性标记为只读。
我在班上有一个项目清单。
尽管如果该属性为只读,则可以修改列表。
公开列表的IEnumerable使其不可变。
我想知道使一类不变的基本规则是什么?
2
我强烈建议您阅读Eric Lippert关于不变性的博客系列,尤其是有关“某种不变性”的条目。您对“公开列表的IEnumerable使其不可变”的评论对我来说有些奇怪。那是什么意思
—
乔恩·斯基特
我的意思是,而不是允许访问列表(如果该对象具有其他一些对象的列表),则允许用户使用IEnumerable访问成员。此处的谈话清单如特定示例所示,但可以是任何数据结构。
—
Biswanath