Попробовал запустить анализ кода выполнения проекта здесь и получил ряд предупреждений, в которых говорилось что-то вроде этого:
CA1002: Microsoft.Design: измените "List <SomeType> " в "SomeClass.SomeProtectedOrPublicProperty", чтобы использовать Collection, ReadOnlyCollection или KeyedCollection
Почему я должен использовать Collection<T>
вместо List<T>
? Когда я смотрю документацию msdn, они кажутся почти равными. После прочтения справки об ошибке для предупреждения я обнаружил, что
System.Collections.Generic.List(T) _ - общий набор, предназначенный для производительности не наследования и, следовательно, не содержит виртуальных членов.
Но что это значит? И что я должен делать вместо этого?
Должен ли я продолжать использовать List<T>
внутри, а затем в свойствах возвращать new Collection<T>(someList)
вместо этого? Или я должен просто начать использовать Collection<T>
вместо List<T>
?