다음을 통해 공유


CA1708: 식별자는 대/소문자만 다른 경우에는 서로 달라야 합니다.

속성
규칙 ID CA1708
제목 식별자는 대소문자 외에도 다른 차이점이 있어야 합니다.
범주 이름 지정
수정 사항이 호환성을 깨뜨리는지 여부 또는 무중단인지 여부 주요 변경
.NET 10에서 기본적으로 사용하도록 설정 아니요
적용 가능한 언어 C# 및 Visual Basic

원인

두 형식, 멤버, 매개 변수 또는 정규화된 네임스페이스의 이름이 소문자로 변환될 경우 동일합니다.

기본적으로 이 규칙은 외부에 표시되는 형식, 멤버 및 네임스페이스만 확인하지만 이는 구성 가능합니다.

규칙 설명

공용 언어 런타임을 대상으로 하는 언어는 대/소문자를 구분하지 않으므로 네임스페이스, 형식, 멤버 및 매개 변수의 식별자가 대/소문자만 달라서는 안 됩니다. 예를 들어 Visual Basic은 널리 사용되는 대/소문자를 구분하지 않는 언어입니다.

위반 문제를 해결하는 방법

대/소문자를 구분하지 않는 방식으로 다른 식별자와 비교할 때 고유한 이름을 선택합니다.

경고를 표시하지 않는 경우

이 규칙에서 경고를 무시하지 마십시오. 라이브러리가 .NET에서 사용 가능한 모든 언어에서 사용할 수는 않습니다.

분석할 코드 구성

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

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

특정 API 화면 포함

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

dotnet_code_quality.CAXXXX.api_surface = private, internal

메모

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

위반의 예

다음 예제에서는 이 규칙의 위반을 보여 줍니다.

public class Class1
{
    protected string someName;
    public string SomeName => someName;
}

다음 예제에서는 위반 문제를 해결하는 한 가지 방법을 보여줍니다.

public class Class1
{
    protected string _someName;
    public string SomeName => _someName;
}