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