próbował uruchomić Run analizy kodu w projekcie tutaj i dostał kilka ostrzeżeń, że powiedział coś takiego:C#: Różnica między Lista <T> i Collection <T> (CA1002, nie należy wystawiać listy rodzajowe)
CA1002: Microsoft.Design: Zmiana 'Wykaz < SomeType>' w 'SomeClass.SomeProtectedOrPublicProperty' do wykorzystania Collection, ReadOnlyCollection lub KeyedCollection
Wh y powinienem użyć Collection<T>
zamiast List<T>
? Kiedy patrzę na dokumentację msdn, wydają się prawie równe. Po przeczytaniu pomocy błędzie za ostrzeżenie, stwierdziliśmy, że
System.Collections.Generic.List (T) _is kolekcji generycznych zaprojektowanych pod kątem wydajności nie dziedziczenia, a więc nie zawiera żadnych wirtualnych członków.
Ale co to naprawdę znaczy? I co powinienem robić zamiast tego?
Czy powinienem używać wewnętrznie List<T>
, a następnie we właściwościach zwrócić zamiast tego new Collection<T>(someList)
? A może powinienem zacząć używać Collection<T>
zamiast List<T>
?
Zobacz [ten wpis na blogu] (http://blogs.msdn.com/fxcop/archive/2006/04/27/585476.aspx) dla szczegółowego wyjaśnienia –
Nawiasem mówiąc, jeśli chcesz wiedzieć, dlaczego Kolekcja znajduje się w [System.Collections.ObjectModel, przeczytaj to] (http://blogs.msdn.com/kcwalina/archive/2005/03/15/396086 .aspx) autorstwa Krzysztofa Cwaliny. –