Udostępnij za pośrednictwem


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