CA1058: Typen sollten bestimmte Basistypen nicht erweitern
TypeName |
TypesShouldNotExtendCertainBaseTypes |
CheckId |
CA1058 |
Kategorie |
Microsoft.Design |
Unterbrechende Änderung |
Breaking |
Ursache
Ein extern sichtbarer Typ erweitert bestimmte Basistypen. Derzeit meldet diese Regel Typen, die sich von folgenden Typen ableiten:
Regelbeschreibung
Für .NET Framework, Version 1, wurde empfohlen, neue Ausnahmen von ApplicationException abzuleiten. Die Empfehlung hat sich geändert: Nun sollten neue Ausnahmen von System.Exception oder einer der zugehörigen Unterklassen im System-Namespace abgeleitet werden.
Erstellen Sie keine Unterklasse von XmlDocument, wenn Sie eine XML-Ansicht eines zugrunde liegenden Objektmodells oder einer Datenquelle erstellen möchten.
Nicht generische Auflistungen
Verwenden und/oder erweitern Sie nach Möglichkeit generische Auflistungen. Erweitern Sie keine nicht generischen Auflistungen im Code, sofern sie nicht zuvor gesendet wurden.
Beispiele für falsche Verwendung
public class MyCollection : CollectionBase
{
}
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}
Beispiele für richtige Verwendung
public class MyCollection : Collection<T>
{
}
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, leiten Sie den Typ von einem anderen Basistyp oder einer generischen Auflistung ab.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie bei Verstößen in Zusammenhang mit ApplicationException keine Warnung dieser Regel. Warnungen dieser Regel können gefahrlos für Verstöße im Zusammenhang mit XmlDocument unterdrückt werden. Eine Warnung über eine nicht generische Auflistung kann gefahrlos unterdrückt werden, wenn der Code zuvor freigegeben wurde.