CA1501:避免过度继承

类型名

AvoidExcessiveInheritance

CheckId

CA1501

类别

Microsoft.Maintainability

是否重大更改

原因

类型在继承层次结构中的深度超过四级。

规则说明

深度嵌套的类型层次结构可能很难遵循、理解和维护。 此规则将分析限制在同一模块内的层次结构。

如何解决冲突

若要修复与该规则的冲突,请从继承层次结构中较浅的基类型派生类型,或者消除一些中间基类型。

何时禁止显示警告

可以安全地禁止显示此规则发出的警告。 但是,代码可能会更难维护。 请注意,根据基类型的可见性,解决与该规则的冲突可能会造成重大更改。 例如,移除公共基类型就是一项重大更改。

示例

下面的示例演示一个与该规则冲突的类型。

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