다음을 통해 공유


CA1501: 상속성을 너무 많이 사용하지 마십시오.

TypeName

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