Essayé d'exécuter l'Analyse de Code sur un projet, ici, et a obtenu un certain nombre de mises en garde qui dit quelque chose comme ceci:
CA1002 : Microsoft.Conception : Modification de la Liste<SomeType>' dans 'SomeClass.SomeProtectedOrPublicProperty' d'utiliser la Collection, ReadOnlyCollection ou KeyedCollection
Pourquoi devrais-je utiliser Collection<T>
au lieu de List<T>
? Quand je regarde la documentation msdn, ils semblent à peu près égale. Après la lecture de l'erreur d'aide pour l'avertissement, j'ai trouvé que
Système.Les Collections.Génériques.Liste(T)_is une collection générique conçu pour la performance, l'héritage et, par conséquent, ne contient pas de membres virtuels.
Mais qu'est que cela signifie vraiment? Et que dois-je faire à la place?
Dois-je continuer à l'utiliser List<T>
en interne, puis dans les propriétés de retour d'un new Collection<T>(someList)
à la place? Ou devrais-je commencer à utiliser Collection<T>
au lieu de List<T>
?