Evitar a herança excessiva
TypeName |
AvoidExcessiveInheritance |
CheckId |
CA1501 |
Category (Categoria) |
Microsoft.Maintainability |
Quebrando alterar |
Quebrando |
Causa
É um tipo de mais de quatro níveis de profundidade na sua hierarquia de herança.
Descrição da regra
Hierarquias de tipo profundamente aninhados podem ser difíceis de execute, entender e manter.Esta regra limita análise para hierarquias dentro do mesmo módulo.
Como corrigir violações
Para corrigir uma violação dessa regra, derivam do tipo de um tipo de base menos de profundidade na hierarquia de herança ou eliminar alguns dos tipos de base intermediários.
Quando suprimir avisos
É seguro eliminar um aviso da regra; no entanto, o código pode ser mais difícil manter.Observe que dependendo da visibilidade de tipos base, resolver violações dessa regra pode criar alterações significativas.Por exemplo, remover públicos tipos base é uma alterar 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 {}
}