一尘不染

为什么公开List被认为是不好的?[重复]

c#

这个问题已经在这里有了答案

List 或IList [关闭]
(18个答案)

5年前关闭。

根据FXCop的介绍,List不应在API对象模型中公开。为什么认为这是不良做法?


阅读 365

收藏
2020-05-19

共1个答案

一尘不染

我同意这里的驼鹿:这List<T>是一个不受约束的肿物体,里面有很多“行李”。

幸运的是,解决方案很简单:IList<T>改为公开。

它公开了具有大多数List<T>方法的准系统接口(诸如之类的东西除外AddRange()),并且不会将您限制为特定List<T>类型,从而使您的API使用者可以使用自己的自定义实现IList<T>

为了获得更大的灵活性,请考虑IEnumerable<T>在适当时将某些集合暴露给。

2020-05-19