根据 FxCop 的建议和我的个人倾向,我一直在鼓励我正在执教的团队尽可能地使用 ReadOnlyCollections。如果只是这样列表的收件人不能修改他们的内容。在他们的理论中,这是面包和黄油。问题是 List<> 接口更丰富地公开了各种有用的方法。他们为什么做出这样的选择?
您是否只是放弃并返回可写集合?您是否返回只读集合,然后将它们包装在可写品种中?啊啊啊。
更新:谢谢我熟悉框架设计指南,这就是团队使用 FxCop 来执行它的原因。然而,这个团队正在使用 VS 2005(我知道,我知道),所以告诉他们 LINQ/Extension 方法可以解决他们的问题,这让他们很难过。
他们了解到 List.FindAll() 和 .FindFirst() 比编写 foreach 循环更清晰。现在我正在推动他们使用 ReadOnlyCollections 他们失去了这种清晰度。
也许有一个我没有发现的更深层次的设计问题。
-- 对不起,原帖应该提到了 VS2005 的限制。我住了这么久,我只是没有注意到。