다음을 통해 공유


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

업데이트: 2007년 11월

TypeName

IdentifiersShouldHaveCorrectPrefix

CheckId

CA1715

범주

Microsoft.Naming

변경 수준

주요 변경 - 인터페이스에서 발생한 경우

주요 변경 아님 - 제네릭 형식 매개 변수에서 발생한 경우

원인

외부에 노출되는 인터페이스의 이름이 대문자 'I'로 시작하지 않습니다.

- 또는 -

외부에 노출되는 형식 또는 메서드의 제네릭 형식 매개 변수 이름이 대문자 'T'로 시작하지 않습니다.

규칙 설명

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

인터페이스 이름은 대문자 'I'로 시작하고 그 다음에 다른 대문자가 와야 합니다. 이 규칙에서는 'MyInterface' 및 'IsolatedInterface' 같은 인터페이스 이름에 대한 위반을 보고합니다.

제네릭 형식 매개 변수 이름의 첫 글자는 대문자 T여야 합니다. 매개 변수 이름이 두 글자 이상인 경우 두 번째 글자는 아무 글자나 상관없지만 마찬가지로 대문자여야 합니다. 이 규칙에서는 'V' 및 'Type'과 같은 제네릭 형식 매개 변수 이름에 대한 위반을 보고합니다.

명명 규칙은 공용 언어 런타임을 대상으로 하는 라이브러리에 공통적인 모양을 적용합니다. 이 라이브러리는 관리 코드 개발에 대한 전문 지식을 가진 사람에 의해 개발되었으므로 새 소프트웨어 라이브러리에 익숙해지는 데 필요한 학습 기간을 단축하고 고객의 신뢰를 높여 줍니다.

위반 문제를 해결하는 방법

식별자의 이름을 올바른 접두사를 사용하도록 다시 지정합니다.

경고를 표시하지 않는 경우

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

예제

다음 예제에서는 이름이 잘못된 인터페이스를 보여 줍니다.

Imports System

Namespace Samples

    Public Interface Book      ' Violates this rule

        ReadOnly Property Title() As String

        Sub Read()

    End Interface

End Namespace
using System;

namespace Samples
{
    public interface Book   // Violates this rule
    {
        string Title
        {
            get;
        }

        void Read();        
    }
}
using namespace System;

namespace Samples
{
    public interface class Book     // Violates this rule
    {
        property String^ Title
        {
            String^ get();
        }
        void Read();
    };
}

다음 예제에서는 인터페이스 이름 앞에 'I'를 추가하여 위에 나와 있는 규칙 위반을 해결합니다.

Imports System

Namespace Samples

    Public Interface IBook  ' Fixes the violation by prefixing the interface with 'I'

        ReadOnly Property Title() As String

        Sub Read()

    End Interface

End Namespace
using System;

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

        void Read();        
    }
}
using namespace System;

namespace Samples
{
    public interface class IBook  // Fixes the violation by prefixing the interface with 'I'
    {
        property String^ Title
        {
            String^ get();
        }
        void Read();
    };
}

다음 예제에서는 이름이 잘못된 제네릭 형식 매개 변수를 보여 줍니다.

Imports System

Namespace Samples

    Public Class Collection(Of Item)    ' Violates this rule

    End Class

End Namespace
using System;

namespace Samples
{
    public class Collection<Item>   // Violates this rule
    {

    }
}
using namespace System;

namespace Samples
{
    generic <typename Item>     // Violates this rule
    public ref class Collection
    {

    };
}

다음 예제에서는 제네릭 형식 매개 변수 이름 앞에 'T'를 추가하여 위에 나와 있는 규칙 위반을 해결합니다.

Imports System

Namespace Samples

    Public Class Collection(Of TItem)  ' Fixes the violation by prefixing the generic type parameter with 'T'

    End Class

End Namespace
using System;

namespace Samples
{
    public class Collection<TItem>  // Fixes the violation by prefixing the generic type parameter with 'T'

    {

    }
}
using namespace System;

namespace Samples
{
    generic <typename TItem>  // Fixes the violation by prefixing the generic type parameter with 'T'
    public ref class Collection
    {

    };
}

관련 규칙

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