CA1058 : Les types ne doivent pas étendre certains types de base
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.