CA1501: Vyhněte se nadměrné dědičnosti
TypeName |
AvoidExcessiveInheritance |
CheckId |
CA1501 |
Kategorie |
Microsoft.Maintainability |
Narušující změna |
Narušující |
Příčina
Typ je více než čtyři úrovně hluboko v hierarchii dědičnosti.
Popis pravidla
Hluboce vnořené hierarchie typů může být obtížné sledovat, pochopit a udržovat.Toto pravidlo omezuje analýzy na hierarchie ve stejném modulu.
Jak vyřešit porušení
Pro opravení porušení tohoto pravidla, je nutné odvodit typ ze základního typu, který je méně zanořený v hierarchii dědičnosti, nebo eliminovat některé zprostředkující základní typy.
Kdy potlačit upozornění
Upozornění tohoto pravidla lze bezpečně potlačit.Nicméně, kód může být obtížné udržovat.Je třeba si všimnout, že podle viditelnosti základních typů, řešení porušení tohoto pravidla může vytvořit narušující změny.Například, odebrání veřejných základních typů je narušující změna.
Příklad
Následující příklad ukazuje typ, který toto pravidlo porušuje.
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 {}
}