다음을 통해 공유


CA1716: 식별자는 키워드와 달라야 합니다.

속성
규칙 ID CA1716
타이틀 식별자는 키워드와 달라야 합니다.
범주 이름 지정
수정 사항이 주요 변경인지 여부 주요 변경
.NET 8에서 기본적으로 사용 아니요

원인

네임스페이스, 형식, 가상 멤버, 인터페이스 멤버의 이름이 프로그래밍 언어의 예약 키워드와 일치합니다.

기본적으로 이 규칙은 외부에 표시되는 네임스페이스, 형식, 멤버만 확인하지만 표시 유형기호 종류를 구성할 수 있습니다.

규칙 설명

네임스페이스, 형식, 가상 멤버, 인터페이스 멤버에 대한 식별자가 공용 언어 런타임을 대상으로 하는 언어에 정의된 키워드와 달라야 합니다. 사용되는 언어 및 키워드에 따라 컴파일러 오류 및 모호성으로 인해 라이브러리에서 사용하기 어려울 수 있습니다.

이 규칙은 다음 언어의 키워드를 검사합니다.

  • Visual Basic
  • C#
  • C++/CLI

Visual Basic 키워드에는 대/소문자를 구분하지 않는 비교가 사용되고 다른 언어에는 대/소문자를 구분하는 비교가 사용됩니다.

위반 문제를 해결하는 방법

키워드 목록에 표시되지 않는 이름을 선택합니다.

경고를 표시하지 않는 경우

식별자가 API의 사용자를 혼동하지 않으며 라이브러리가 .NET의 사용 가능한 모든 언어에서 사용할 수 있다고 확신하는 경우 이 규칙에서 경고를 표시하지 않을 수 있습니다.

경고 표시 안 함

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

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

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

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

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

분석할 코드 구성

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

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

특정 API 화면 포함

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

dotnet_code_quality.CAXXXX.api_surface = private, internal

분석된 기호 종류

이 규칙에 따라 분석할 기호 종류를 구성할 수 있습니다. 허용되는 값은 다음과 같습니다.

  • Namespace
  • NamedType
  • Method
  • Property
  • Event
  • Parameter

쉼표(,)를 사용하여 여러 값을 구분합니다. 기본값에는 위 목록의 모든 기호 종류가 포함됩니다.

dotnet_code_quality.CA1716.analyzed_symbol_kinds = Namespace, NamedType, Method, Property, Event