CA1034: 중첩 형식은 노출하지 마십시오.
속성 | 값 |
---|---|
규칙 ID | CA1034 |
제목 | 중첩 형식은 노출되면 안 됩니다. |
범주 | 디자인 |
수정 사항이 주요 변경인지 여부 | 주요 변경 |
.NET 9에서 기본적으로 사용 | 아니요 |
원인
외부에 표시되는 형식은 외부에 표시되는 형식 선언을 포함합니다. 중첩 열거형, protected 형식, 작성기 패턴은 이 규칙에서 제외됩니다.
규칙 설명
중첩 형식은 다른 형식의 범위 내에 선언된 형식입니다. 중첩 형식은 포함하는 형식의 private 구현 정보를 캡슐화하는 데 유용합니다. 이 용도로 사용할 경우 중첩 형식은 외부에 노출되면 안 됩니다.
논리적 그룹화에 대해 외부에 표시되는 중첩 유형을 사용하지 마세요. 또는 이름 충돌을 방지하려면 네임스페이스를 대신 사용하세요.
중첩 형식에는 멤버 접근성이라는 개념이 포함되며 일부 프로그래머는 이를 명확하게 이해하지 못합니다.
보호된 형식은 미리 사용자 지정 시나리오에서 서브클래스 및 중첩 형식에 사용할 수 있습니다.
위반 문제를 해결하는 방법
중첩 형식이 외부에 표시되지 않게 하려면 형식의 접근성을 변경합니다. 그러지 않으면 부모에서 중첩 형식을 제거합니다. 중첩의 목적이 중첩 형식을 범주화하는 것이면 대신 네임스페이스를 사용하여 계층 구조를 만듭니다.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다.
예시
다음 예제에서는 규칙을 위반하는 형식을 보여 줍니다.
public class ParentType
{
public class NestedType
{
public NestedType()
{
}
}
public ParentType()
{
NestedType nt = new NestedType();
}
}
Imports System
Namespace ca1034
Class ParentType
Public Class NestedType
Sub New()
End Sub
End Class
Sub New()
End Sub
End Class
End Namespace
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET