Udostępnij za pośrednictwem


CA1058: Typy nie powinny rozszerzać pewnych typów bazowych

TypeName

TypesShouldNotExtendCertainBaseTypes

CheckId

CA1058

Kategoria

Microsoft.Design

Zmiana kluczowa

Kluczowa

Przyczyna

Typ widoczny z zewnątrz rozszerza niektóre typy podstawowe.Obecnie ta reguła zgłasza typy, które dziedziczą po następujących typach:

Opis reguły

Dla .NET Framework w wersji 1 zaleca się oznaczanie wyjątków jako pochodzących od ApplicationException.Zalecenie zmieniło się i nowe wyjątki powinny pochodzić od Exception lub jednej z jej podklas w przestrzeni nazw System.

Nie należy tworzyć podklasy XmlDocument w celu stworzenia widoku XML źródłowego modelu obiektowego źródła danych.

Kolekcje nieogólne

Kolekcji generycznych należy używać i/lub dziedziczyć po nich wszędzie tam, gdzie to możliwe.Kolekcji nieuniwersalnych nie należy rozszerzać w kodzie, chyba że zostały wcześniej dostarczone.

Przykłady niepoprawnego użycia

public class MyCollection : CollectionBase
{
}
 
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}

Przykłady poprawnego użycia

public class MyCollection : Collection<T>
{
}
 
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}

Jak naprawić naruszenia

Aby naprawić naruszenie tej zasady typ powinien dziedziczyć po innym typie bazowym lub kolekcji generycznej.

Kiedy pominąć ostrzeżenia

Nie pomijaj ostrzeżeń z tej zasady dla naruszeń dotyczących ApplicationException.Pominięcie ostrzeżenia z tej reguły można bezpiecznie pominąć dla naruszeń dotyczących XmlDocument.Można bezpiecznie pominąć ostrzeżenie dotyczące kolekcji nieuniwersalnych, jeśli kod był wydany wcześniej