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

속성 값
규칙 ID CA1716
제목 식별자는 키워드와 달라야 합니다.
범주 이름 지정
수정 사항이 호환성을 깨뜨리는지 여부 또는 무중단인지 여부 주요 변경
.NET 10에서 기본적으로 사용하도록 설정 아니요
적용 가능한 언어 C# 및 Visual Basic

원인

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

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

규칙 설명

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

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

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

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

위반 문제를 해결하는 방법

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

Example

// This code violates the rule.
public class Class { }
public class Event { }
public class String { }
public class Namespace { }
public class Object { }
public class Public { }
public class Static { }

경고를 표시하지 않는 경우

식별자가 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_surface 옵션을 설정하여 접근성에 따라 이 규칙을 실행할 코드베이스의 일부를 구성할 수 있습니다. 예를 들어 규칙이 퍼블릭이 아닌 API 표면에서만 실행되도록 지정하려면 프로젝트의 .editorconfig 파일에 다음 키-값 쌍을 추가합니다.

dotnet_code_quality.CAXXXX.api_surface = private, internal

메모

XXXX CAXXXX 부분을 해당 규칙의 ID로 바꿉니다.

분석된 기호 종류

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

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

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

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