Freigeben über


CA1501: Übermäßige Vererbung vermeiden

TypeName

AvoidExcessiveInheritance

CheckId

CA1501

Kategorie

Microsoft.Maintainability

Unterbrechende Änderung

Breaking

Ursache

Ein Typ ist in seiner Vererbungshierarchie mehr als vier Ebenen tief.

Regelbeschreibung

Tief verschachtelte Typenhierarchien können schwer zu verfolgen, verstehen und verwalten sein. Diese Regel schränkt die Analyse auf Hierarchien im selben Modul ein.

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, leiten Sie den Typ von einem Basistyp ab, der sich weniger tief in der Vererbungshierarchie befindet, oder entfernen Sie einige der mittleren Basistypen.

Wann sollten Warnungen unterdrückt werden?

Warnungen dieser Regel können gefahrlos unterdrückt werden. Der Code könnte jedoch schwieriger beizubehalten sein. Je nach Sichtbarkeit der Typen können durch das Beheben von Verstößen gegen diese Regel unterbrechende Änderungen verursacht werden. So ist beispielsweise das Entfernen öffentlicher Basistypen eine unterbrechende Änderung.

Beispiel

Im folgenden Beispiel wird ein Typ veranschaulicht, der gegen die Regel verstößt.

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