不变的收藏品?

Joa*_*nge 20 .net c# immutability

我在我的应用程序中创建了大多数基本类型,不可变.但收藏品是否也应该是不可变的?对我来说,这似乎是一个巨大的开销,除非我错过了什么.

我在谈论集合以保存Point3值等,可以在不同时间添加它们.因此,如果集合中有1M值,并且您需要删除其中的1个,则必须重新创建相同的集合,对吧?

And*_*ott 15

不可变集合很棒,特别是如果您的应用程序已经利用了不可变类型或语义.

.NET刚刚发布了他们的第一个不可变集合,我建议你试试.

  • 对于4.5+版本来说太糟糕了 (3认同)

Bil*_*l K 8

我最喜欢的收藏技巧就是永远不会传递它们.如果它们只存在于单个对象中,那么使它们成为不可变的几乎是无关紧要的(只要你的包含对象不改变它们就不会改变它们).

通常你的收藏代表什么?这是一系列狗或发票集合......

通常你可以用一组狗(Herd?neuter?)或一组发票(付费?)来做一些事情.几乎总有一些操作适用于整个对象列表 - 具有超出单数的功能的操作invoice.pay()(例如,确保首先支付最重要的发票),没有围绕您的集合的类,实际上没有地方放置这些操作.

有一些变量与你的集合相关联通常也是有意义的 - 再次没有包装器,你总是把这些变量放在一些奇怪的不自然的位置.

一开始可能看起来很奇怪,但在你判断之前尝试几次.