CA1002: Nie ujawniaj list generycznych
TypeName |
DoNotExposeGenericLists |
CheckId |
CA1002 |
Kategoria |
Microsoft.Design |
Zmiana kluczowa |
Kluczowa |
Przyczyna
Typ zawiera widoczny z zewnątrz element członkowski, który jest List, który zwraca typ List lub których podpis zawiera parametr List.
Opis reguły
List jest kolekcją generyczną, która jest przeznaczona dla wydajności, a nie dziedziczenia.List 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 List.
Jak naprawić naruszenia
Aby usunąć naruszenie tej zasady, należy zmienić typ List 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: Unikaj nadużywania parametrów na typach generycznych
CA1010: Kolekcje powinny implementować interfejs generyczny
CA1000: Nie deklaruj statycznych elementów członkowskich na typach generycznych
CA1006: Nie zagnieżdżaj typów generycznych w podpisach elementu członkowskiego
CA1004: Generyczne metody powinny dostarczyć parametry typu
CA1003: Użyj wystąpień obsługi zdarzeń generycznych
CA1007: Używaj danych generycznych wszędzie, gdzie jest to odpowiednie