CA1501 : Éviter l'excès d'héritage
TypeName |
AvoidExcessiveInheritance |
CheckId |
CA1501 |
Catégorie |
Microsoft.Maintainability |
Modification avec rupture |
Oui |
Cause
Un type est imbriqué de plus de quatre niveaux dans sa hiérarchie d'héritage.
Description de la règle
Les hiérarchies de type profondément imbriquées peuvent être difficiles à suivre, comprendre et gérer.Cette règle limite l'analyse aux hiérarchies contenues dans le même module.
Comment corriger les violations
Pour corriger une violation de cette règle, dérivez le type d'un type de base moins imbriqué dans la hiérarchie d'héritage ou supprimez certains des types de base intermédiaires.
Quand supprimer les avertissements
Il est possible de supprimer sans risque un avertissement de cette règle.Cependant, il pourrait être plus difficile de gérer le code.Notez qu'en fonction de la visibilité des types de base, la résolution des violations de cette règle peut créer des modifications avec rupture.Par exemple, la suppression des types de base publics est une modification avec rupture.
Exemple
L'exemple suivant présente un type qui enfreint la règle.
Imports System
Namespace MaintainabilityLibrary
Class BaseClass
End Class
Class FirstDerivedClass
Inherits BaseClass
End Class
Class SecondDerivedClass
Inherits FirstDerivedClass
End Class
Class ThirdDerivedClass
Inherits SecondDerivedClass
End Class
Class FourthDerivedClass
Inherits ThirdDerivedClass
End Class
' This class violates the rule.
Class FifthDerivedClass
Inherits FourthDerivedClass
End Class
End Namespace
using System;
namespace MaintainabilityLibrary
{
class BaseClass {}
class FirstDerivedClass : BaseClass {}
class SecondDerivedClass : FirstDerivedClass {}
class ThirdDerivedClass : SecondDerivedClass {}
class FourthDerivedClass : ThirdDerivedClass {}
// This class violates the rule.
class FifthDerivedClass : FourthDerivedClass {}
}