Share via


CA1717: FlagsAttribute 열거형에만 복수형 이름을 사용해야 합니다.

속성
규칙 ID CA1717
타이틀 FlagsAttribute 열거형만 복수형 이름을 가질 수 있습니다.
범주 이름 지정
수정 사항이 주요 변경인지 여부 주요 변경
.NET 8에서 기본적으로 사용 아니요

원인

열거형 이름이 복수 단어로 끝나고 열거형이 System.FlagsAttribute 특성으로 표시되어 있지 않습니다.

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

규칙 설명

명명 규칙은 열거형 이름이 복수형인 경우 여러 열거 값을 동시에 지정할 수 있음을 나타내게 되어 있습니다. FlagsAttribute는 열거형이 열거형에서 비트 연산을 가능하게 하는 비트 필드로 처리되어야 함을 컴파일러에 알립니다.

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

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

위반 문제를 해결하는 방법

열거형의 이름을 단일 단어로 만들거나 FlagsAttribute를 추가합니다.

경고를 표시하지 않는 경우

이름이 단일 단어로 끝나는 경우 규칙에서 경고를 표시하지 않아도 됩니다.

경고 표시 안 함

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

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

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

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

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

분석할 코드 구성

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

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

특정 API 화면 포함

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

dotnet_code_quality.CAXXXX.api_surface = private, internal

참고 항목