CA1721: 속성 이름은 Get 메서드와 달라야 합니다.
TypeName |
PropertyNamesShouldNotMatchGetMethods |
CheckId |
CA1721 |
범주 |
Microsoft.Naming |
변경 수준 |
주요 변경 |
원인
public 또는 protected 멤버의 이름이 'Get'으로 시작하며 이름의 나머지 부분이 public 또는 protected 속성의 이름과 같습니다.예를 들어, 'GetColor'라는 이름의 메서드와 'Color'라는 이름의 속성이 포함된 형식은 이 규칙을 위반합니다.
규칙 설명
Get 메서드 및 속성의 이름은 함수와 명확하게 구분되어야 합니다.
명명 규칙은 공용 언어 런타임을 대상으로 하는 라이브러리에 공통적인 모양을 적용합니다.이를 통해 새 소프트웨어 라이브러리에 익숙해지는 데 필요한 학습 기간이 단축되고, 관리 코드 개발에 대한 전문 지식을 갖춘 작업자가 라이브러리를 개발했다는 신뢰성이 향상됩니다.
위반 문제를 해결하는 방법
접두사가 'Get'인 메서드의 이름과 같지 않은 이름으로 변경합니다.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다.
[!참고]
IExtenderProvider 인터페이스를 구현하여 Get 메서드가 호출되는 경우 이 경고가 제외될 수 있습니다.
예제
다음 예제에는 이 규칙을 위반하는 메서드와 속성이 포함되어 있습니다.
Imports System
Namespace NamingLibrary
Public Class Test
Public ReadOnly Property [Date]() As DateTime
Get
Return DateTime.Today
End Get
End Property
' Violates rule: PropertyNamesShouldNotMatchGetMethods.
Public Function GetDate() As String
Return Me.Date.ToString()
End Function
End Class
End Namespace
using System;
namespace NamingLibrary
{
public class Test
{
public DateTime Date
{
get { return DateTime.Today; }
}
// Violates rule: PropertyNamesShouldNotMatchGetMethods.
public string GetDate()
{
return this.Date.ToString();
}
}
}