为什么接口上的Dictionary <k,v>是一个坏主意?

Cod*_*der 5 c#

为什么Dictionary<k,v>界面上的主意不好?

谢谢

Tam*_*lei 6

因为即使你让他们readonly或者const,不修改该词典的内容(没有你的规定)停止客户端.这同样适用于公共接口上的数组和列表.

为了解决这个问题,你可以给容器的副本到客户端(如JK在他/她的评论中提及),或(这将是过于昂贵复制整个容器)提供的存取方法给它喜欢getItemsetItem.这样您就可以控制容器的内容.