Evitare ereditarietà eccessiva
Aggiornamento: novembre 2007
TypeName |
AvoidExcessiveInheritance |
CheckId |
CA1501 |
Categoria |
Microsoft.Maintainability |
Breaking Change |
Breaking |
Causa
Un tipo si trova oltre il quarto livello di nidificazione nella gerarchia di ereditarietà.
Descrizione della regola
Le gerarchie di tipi eccessivamente nidificate possono comportare difficoltà di comprensione e gestione. Questa regola limita l'analisi alle gerarchie che si trovano all'interno dello stesso modulo.
Correzione di violazioni
Per correggere una violazione di questa regola, derivare il tipo da un tipo di base meno nidificato 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 può comportare una maggiore difficoltà di gestione del codice. 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 {}
}