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