Share via


CA1714: 플래그 열거형에는 복수형 이름을 사용해야 합니다.

속성
규칙 ID CA1714
타이틀 플래그 열거형에는 복수형 이름을 사용해야 합니다.
범주 이름 지정
수정 사항이 주요 변경인지 여부 주요 변경
.NET 8에서 기본적으로 사용 아니요

원인

열거형에 System.FlagsAttribute가 있으며 해당 이름이 ‘s’로 끝나지 않습니다.

기본적으로 이 규칙은 외부에 표시되는 열거형만 확인하지만 이는 구성 가능합니다.

규칙 설명

FlagsAttribute로 표시되는 형식의 경우 이 특성이 둘 이상의 값을 지정할 수 있음을 나타내므로 복수형의 이름을 사용합니다. 예를 들어 요일을 정의하는 열거형은 여러 요일을 지정할 수 있는 애플리케이션에서 사용할 수 있습니다. 이 열거형에는 FlagsAttribute가 있어야 하며 ‘Days’라고 할 수 있습니다. 한 요일만 허용하는 유사한 열거형에는 특성이 없으며 ‘Day’라고 할 수 있습니다.

명명 규칙은 공용 언어 런타임을 대상으로 하는 라이브러리에 대한 일반적인 모양을 제공합니다. 따라서 새 소프트웨어 라이브러리에 필요한 학습 곡선이 축소되고 라이브러리가 관리 코드 개발 관련 전문 지식을 갖춘 누군가에 의해 개발되었다는 사실에 고객 신뢰도가 향상됩니다.

위반 문제를 해결하는 방법

열거형의 이름을 복수형으로 설정하거나, 여러 열거형 값을 동시에 지정하면 안 되는 경우 FlagsAttribute 특성을 제거합니다.

경고를 표시하지 않는 경우

이름이 복수형이지만 ‘s’로 끝나지 않는 경우 위반을 표시하지 않아도 됩니다. 예를 들어 앞에서 설명한 여러 요일 열거형의 이름이 ‘DaysOfTheWeek’인 경우 의도가 아니라 규칙의 논리를 위반하게 됩니다. 이러한 위반은 표시하지 않아야 합니다.

경고 표시 안 함

단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.

#pragma warning disable CA1714
// The code that's violating the rule is on this line.
#pragma warning restore CA1714

파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 구성 파일에서 심각도를 none으로 설정합니다.

[*.{cs,vb}]
dotnet_diagnostic.CA1714.severity = none

자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.

분석할 코드 구성

다음 옵션을 사용하여 이 규칙이 실행될 코드베이스 부분을 구성합니다.

이 규칙, 적용되는 모든 규칙 또는 적용되는 이 범주의 모든 규칙(명명)에 대해 이 옵션을 구성할 수 있습니다. 자세한 내용은 코드 품질 규칙 구성 옵션을 참조하세요.

특정 API 화면 포함

접근성을 기반으로 이 규칙을 실행할 코드베이스의 파트를 구성할 수 있습니다. 예를 들어 규칙이 퍼블릭이 아닌 API 표면에서만 실행되도록 지정하려면 프로젝트의 .editorconfig 파일에 다음 키-값 쌍을 추가합니다.

dotnet_code_quality.CAXXXX.api_surface = private, internal

참고 항목