尝试在这里的一个项目上运行 Run Code Analysis,得到了一些类似这样的警告:
CA1002: Microsoft 设计: 更改“ 有些类,有些受保护的或公共财产”中的“ List < SomType >”以使用 Collection、 ReadOnlyCollection 或 KeyedCollection
为什么我应该使用 Collection<T>
而不是 List<T>
?当我查看 msdn 文档时,它们看起来几乎相等。在阅读了警告的错误帮助之后,我发现
System.Collections.Generic.List (T) _ 是为性能而非继承而设计的通用集合,因此不包含任何虚拟成员。
但这到底意味着什么? 我应该做什么呢?
我是否应该继续在内部使用 List<T>
,然后在属性中返回一个 new Collection<T>(someList)
?或者我应该开始使用 Collection<T>
而不是 List<T>
?