Пытался запустить анализ кода для проекта здесь, и получил ряд предупреждений, в которых говорилось что-то вроде этого:
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>?