Share via


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

속성
규칙 ID CA1715
타이틀 식별자에는 올바른 접두사를 사용해야 합니다.
범주 이름 지정
수정 사항이 주요 변경인지 여부 호환성이 손상되는 변경 -인터페이스에서 발생한 경우.

작업을 중단하지 않는 변경 - 제네릭 형식 매개 변수에 대해 발생하는 경우.
.NET 8에서 기본적으로 사용 아니요

원인

인터페이스의 이름이 대문자 ‘I’로 시작하지 않습니다.

또는

형식 또는 메서드의 제네릭 형식 매개 변수 이름이 대문자 ‘T’로 시작하지 않습니다.

기본적으로 이 규칙은 외부에 표시되는 인터페이스, 형식, 메서드만 확인하지만 이는 구성 가능합니다.

규칙 설명

규칙에 따라 특정 프로그래밍 요소의 이름이 특정 접두사로 시작합니다.

인터페이스 이름은 대문자 ‘I’로 시작하고 그다음 문자도 다른 대문자이어야 합니다. 이 규칙은 ‘MyInterface’ 및 ‘IsolatedInterface’와 같은 인터페이스 이름 위반을 보고합니다.

제네릭 형식 매개 변수 이름은 대문자 ‘T’로 시작해야 하며 선택적으로 그다음 문자에 다른 대문자를 사용할 수 있습니다. 이 규칙은 ‘V’ 및 ‘Type’과 같은 제네릭 형식 매개 변수 이름에 관한 위반을 보고합니다.

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

분석할 코드 구성

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

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

특정 API 화면 포함

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

dotnet_code_quality.CAXXXX.api_surface = private, internal

단일 문자 형식 매개 변수

단일 문자 형식 매개 변수를 규칙에서 제외할지를 구성할 수 있습니다. 예를 들어 규칙에서 단일 문자 형식 매개 변수를 분석하지 ‘않도록’ 지정하려면 프로젝트의 editorconfig 파일에 다음 키-값 쌍 중 하나를 추가합니다.

# Package version 2.9.0 and later
dotnet_code_quality.CA1715.exclude_single_letter_type_parameters = true

# Package version 2.6.3 and earlier
dotnet_code_quality.CA2007.allow_single_letter_type_parameters = true

참고 항목

이 규칙은 T라고 명명된 형식 매개 변수(예: Collection<T>)에 대해서는 발생하지 않습니다.

위반 문제를 해결하는 방법

식별자에 적절한 접두사를 추가하여 이름을 바꿉니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다.

인터페이스 명명 예

다음 코드 조각에서는 잘못 명명된 인터페이스를 보여 줍니다.

' Violates this rule
Public Interface Book

    ReadOnly Property Title() As String

    Sub Read()

End Interface
// Violation.
public interface Book
{
    string Title
    {
        get;
    }

    void Read();
}

다음 코드 조각은 인터페이스에 ‘I’를 접두사로 사용하여 이전 위반을 수정합니다.

// Fixes the violation by prefixing the interface with 'I'.
public interface IBook
{
    string Title
    {
        get;
    }

    void Read();
}
' Fixes the violation by prefixing the interface with 'I'
Public Interface IBook

    ReadOnly Property Title() As String

    Sub Read()

End Interface

형식 매개 변수 명명 예

다음 코드 조각에서는 잘못 명명된 제네릭 형식 매개 변수를 보여 줍니다.

' Violates this rule
Public Class Collection(Of Item)

End Class
// Violation.
public class Collection<Item>
{
}

다음 코드 조각에서는 제네릭 형식 매개 변수의 접두사로 ‘T’를 사용하여 이전 위반을 수정합니다.

// Fixes the violation by prefixing the generic type parameter with 'T'.
public class Collection<TItem>
{
}
' Fixes the violation by prefixing the generic type parameter with 'T'
Public Class Collection(Of TItem)

End Class