Compartilhar via


CA1501: Evitar a herança de excessiva

TypeName

AvoidExcessiveInheritance

CheckId

CA1501

<strong>Categoria</strong>

Microsoft.Maintainability

Alteração significativa

Quebrando

Causa

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

Descrição da regra

Hierarquias de tipo aninhado profundamente podem ser difícil de seguir, entender e manter.Esta regra limita a análise de hierarquias no mesmo módulo.

Como corrigir violações

Para corrigir uma violação desta regra, derivar do tipo de um tipo de base que tem menos níveis na hierarquia de herança ou eliminar alguns dos tipos base intermediários.

Quando suprimir avisos

É seguro eliminar um aviso esta regra.No entanto, o código pode ser mais difícil manter.Observe que, dependendo a visibilidade de tipos básicos, resolver violações desta regra pode criar alterações significativas.Por exemplo, a remoção de tipos base públicos é uma alteração significativa.

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