CA1002: Nie będą uwidaczniać rodzajowy list
TypeName |
DoNotExposeGenericLists |
CheckId |
CA1002 |
Kategoria |
Microsoft.Design |
Zmiana kluczowa |
Kluczowa |
Przyczyna
Typ zawiera widoczny z zewnątrz element członkowski, który jest System.Collections.Generic.List<T>, który zwraca typ System.Collections.Generic.List<T> lub których podpis zawiera parametr System.Collections.Generic.List<T>.
Opis reguły
System.Collections.Generic.List<T> jest kolekcją generyczną, która jest przeznaczona dla wydajności, a nie dziedziczenia.System.Collections.Generic.List<T> nie ma zawiera wirtualnych elementów członkowskich, przez co łatwiej zmienić zachowanie dziedziczonej klasy.Następujące kolekcje generyczne są przeznaczone dla dziedziczenia i powinny być udostępnione zamiast System.Collections.Generic.List<T>.
Jak naprawić naruszenia
Aby usunąć naruszenie tej zasady, należy zmienić typ System.Collections.Generic.List<T> kolekcji generycznych, które są zaprojektowane dla dziedziczenia.
Kiedy pominąć ostrzeżenia
Nie pomijaj ostrzeżenie od tej reguły, chyba że zestaw, który wywołuje to ostrzeżenie nie ma być biblioteką wielokrotnego użytku.Na przykład byłoby bezpiecznie pominąć to ostrzeżenie w aplikacji dostrojonej pod względem wydajności, gdzie uzyskano ją korzystając z list generycznych.
Powiązane reguły
CA1005: Uniknąć nadmiernego parametrów na typy rodzajowe
CA1010: Kolekcji należy implementować interfejs rodzajowy
CA1000: Elementy statyczne nie są deklarowane w typach podstawowych
CA1006: Nie zagnieżdżaj typy rodzajowe w Członkowskim podpisów
CA1004: Metody rodzajowe powinny dostarczyć parametr typu
CA1003: Użyj wystąpień programu obsługi zdarzeń rodzajowy
CA1007: Użyj generyczne, gdzie stosowne