CA1721: имена свойств не должны совпадать с именами методов get
TypeName |
PropertyNamesShouldNotMatchGetMethods |
CheckId |
CA1721 |
Категория |
Microsoft.Naming |
Критическое изменение |
Критическое изменение |
Причина
Имя открытого или защищенного члена начинается с "Get" и иным образом совпадает с именем открытого или защищенного свойства.Например, тип содержит метод "GetColor", а свойство "Color" нарушает это правило.
Описание правила
Методы Get и свойства должны иметь имена, явно различающие их функции.
Соглашения об именах обеспечивают единообразие библиотек, предназначенных для выполнения в среде CLR.Это позволяет сократить время обучения, необходимое для освоения новой библиотеки программного обеспечения, и укрепить уверенность клиента в том, что библиотека была разработана опытным разработчиком управляемого кода.
Устранение нарушений
Измените имя, чтобы оно не совпадало с именем метода с префиксом "Get".
Отключение предупреждений
Для этого правила отключать вывод предупреждений не следует.
Примечание |
---|
Это предупреждение можно отключить, если метод Get вызван реализацией интерфейса IExtenderProvider. |
Пример
В следующем примере показаны метод и свойство, нарушающие это правило.
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();
}
}
}