Share via


Typen sollten bestimmte Basistypen nicht erweitern

Aktualisiert: November 2007

     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>
{
}

Behandlung 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.