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