Поделиться через


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();
        }
    }
}

Связанные правила

CA1024: используйте свойства, если это уместно