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


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: используйте свойства, если это уместно