CA1501: Unikaj nadmiernego dziedziczenia
TypeName |
AvoidExcessiveInheritance |
CheckId |
CA1501 |
Kategoria |
Microsoft.Maintainability |
Złamanie zmiany |
Złamanie |
Przyczyna
Typ jest więcej niż cztery poziomy głębokości w swojej hierarchii dziedziczenia.
Opis reguły
Typ głęboko zagnieżdżonych hierarchiach może być trudno wykonaj, zrozumienie i utrzymania.Ta reguła ogranicza analizy hierarchie, w tym samym module.
Jak naprawić naruszenia
Aby naprawić naruszenie tej zasady, pochodnymi typu typu podstawowego, który jest mniej deep w hierarchii dziedziczenia lub wyeliminować niektóre pośrednich typów podstawowych.
Kiedy do pomijania ostrzeżenia
Bezpiecznie wyłączyć ostrzeżenia od tej reguły.Jednakże kod może być trudniejszy do utrzymania.Uwaga, że w zależności od widoczność typów podstawowych rozwiązywanie naruszenie tej zasady może utworzyć przełomowych zmianach.Na przykład usunięcie publicznego typów podstawowych jest zmiana podziału.
Przykład
Poniższy przykład pokazuje typ, który narusza reguły.
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 {}
}