Partager via


Les types ne doivent pas étendre certains types de base

Mise à jour : novembre 2007

TypeName

TypesShouldNotExtendCertainBaseTypes

CheckId

CA1058

Catégorie

Microsoft.CSharp

Modification avec rupture

Oui

Cause

Un type visible de l'extérieur étend certains types de base. Cette règle indique actuellement les types qui dérivent des types suivants :

Description de la règle

Pour la version 1 de .NET Framework, il était recommandé de dériver les nouvelles exceptions de ApplicationException. Cette recommandation a changé et les nouvelles exceptions doivent dériver de System.Exception ou d'une de ses sous-classes dans l'espace de noms System.

Ne créez pas de sous-classe de XmlDocument si vous souhaitez créer un affichage XML d'un modèle objet ou d'une source de données sous-jacent.

Collections non génériques

Utiliser et/ou étendre des collections génériques chaque fois que possible. N'étendez pas de collections non génériques dans votre code, à moins que vous ne les ayez expédiées précédemment.

Exemples d'utilisations incorrectes

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

Exemples d'utilisations correctes

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

Comment corriger les violations

Pour résoudre une violation de cette règle, dérivez le type d'un type de base différent ou d'une collection générique.

Quand supprimer les avertissements

Ne supprimez pas un avertissement de cette règle pour les violations concernant ApplicationException. Il est possible de supprimer sans risque un avertissement de cette règle pour les violations concernant XmlDocument. Il est possible de supprimer un avertissement à propos d'une collection non générique si le code a été diffusé précédemment.