Partilhar via


CA1501: evitar herança excessiva

TypeName

AvoidExcessiveInheritance

CheckId

CA1501

Categoria

Microsoft.Maintainability

Alteração Significativa

Quebra

Causa

Um tipo é mais de quatro níveis abaixo na hierarquia de herança.

Descrição da Regra

As hierarquias profundamente aninhadas de classificação podem ser difíceis de seguida, compreendam, e manter.Essa análise de limites de regra hierarquias no mesmo módulo.

Como Corrigir Violações

Para corrigir uma violação desta regra, derivar o tipo de um tipo de base que seja menor profundo na hierarquia de herança ou eliminar qualquer um dos tipos de base intermediários.

Quando Suprimir Alertas

É seguro suprimir um aviso desta regra.Porém, o código pode ser mais difícil de manter.Observe que, como a visibilidade dos tipos de base, resolvendo violações desta regra pode criar alterações.Por exemplo, remova os tipos de base públicos é uma alteração.

Exemplo

O exemplo a seguir mostra um tipo que viola a regra.

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 {}
}