CA1501: Evitare ereditarietà eccessiva
TypeName |
AvoidExcessiveInheritance |
CheckId |
CA1501 |
Category |
Microsoft.Maintainability |
Breaking Change |
Breaking |
Causa
Un tipo si trova oltre il quarto livello di annidamento nella gerarchia di ereditarietà.
Descrizione della regola
Le gerarchie di tipi eccessivamente annidate possono comportare difficoltà di comprensione e gestione.Questa regola limita l'analisi alle gerarchie che si trovano all'interno dello stesso modulo.
Come correggere le violazioni
Per correggere una violazione di questa regola, derivare il tipo da un tipo di base meno annidato nella gerarchia di ereditarietà o eliminare alcuni dei tipi di base intermedi.
Esclusione di avvisi
L'esclusione di un avviso da questa regola è sicura.Tuttavia, il codice potrebbe essere più difficile da gestire.Si noti che, in base alla visibilità dei tipi di base, la risoluzione delle violazioni di questa regola potrebbe determinare modifiche importanti.La rimozione dei tipi di base pubblici, ad esempio, è una modifica importante.
Esempio
Nell'esempio riportato di seguito viene illustrato un tipo che viola la regola.
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 {}
}