다음을 통해 공유


CA1711: 식별자에는 올바른 접미사를 사용해야 합니다.

속성
규칙 ID CA1711
제목 식별자에는 올바른 접미사를 사용해야 합니다.
범주 이름 지정
수정 사항이 주요 변경인지 여부 주요 변경
.NET 9에서 기본적으로 사용 아니요

원인

식별자에 잘못된 접미사가 있습니다.

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

규칙 설명

규칙에 따라 특정 기본 형식을 확장하거나 특정 인터페이스를 구현하는 형식의 이름 또는 이러한 형식에서 파생되는 형식의 이름만이 예약된 특정 접미사로 끝나야 합니다. 다른 형식 이름에는 이러한 예약된 접미사를 사용하면 안 됩니다.

다음 표에서는 예약된 접미사와 여기에 연결된 기본 형식 및 인터페이스를 보여 줍니다.

접미사 기본 형식/인터페이스
attribute System.Attribute
컬렉션 System.Collections.ICollection

System.Collections.IEnumerable

System.Collections.Queue

System.Collections.Stack

System.Collections.Generic.ICollection<T>

System.Data.DataSet

System.Data.DataTable
사전 System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey,TValue>
EventArgs System.EventArgs
EventHandler 이벤트 처리기 대리자
예외 System.Exception
Permission System.Security.IPermission
Queue System.Collections.Queue
Stack System.Collections.Stack
스트림 System.IO.Stream

또한 다음 접미사를 사용하면 됩니다.

  • Delegate
  • Enum
  • Core 대신 Impl을 사용하세요.
  • 동일한 형식의 이전 버전과 구분하기 위한 유사 접미사 또는 Ex
  • 열거형 형식에 대한 Flag 또는 Flags

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

위반 문제를 해결하는 방법

형식 이름에서 접미사를 제거합니다.

경고를 표시하지 않는 경우

접미사가 애플리케이션 도메인에서 명확한 의미를 갖지 않는 한 이 규칙의 경고를 숨기지 마십시오.

경고 표시 안 함

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

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

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

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

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

분석할 코드 구성

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

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

특정 API 화면 포함

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

dotnet_code_quality.CAXXXX.api_surface = private, internal

접미사 허용

각 접미사가 파이프 문자(“|”)로 구분된 허용된 접미사 목록을 구성할 수 있습니다. 예를 들어 규칙이 Flag 및 Flags 접미사에 대해 실행되지 않도록 지정하려면 프로젝트의 .editorconfig 파일에 다음 키-값 쌍을 추가하세요.

dotnet_code_quality.ca1711.allowed_suffixes = Flag|Flags

참고 항목