식별자에는 올바른 접두사를 사용해야 합니다.
업데이트: 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
{
};
}