Udostępnij za pośrednictwem


CA1721: Nazwy właściwości nie powinny odpowiadać metodom Get

TypeName

PropertyNamesShouldNotMatchGetMethods

CheckId

CA1721

Kategoria

Microsoft.Naming

Zmiana kluczowa

Kluczowa

Przyczyna

Nazwa publicznego lub chronionego elementu członkowskiego zaczyna się od "Get" i odpowiada nazwie właściwości publicznej lub chronionej.Na przykład typ, który zawiera metodę o nazwie "GetColor" i właściwość o nazwie "Kolor" narusza regułę.

Opis reguły

Metody Get i właściwości powinny mieć nazwy, które wyraźnie odróżniają ich funkcje.

Konwencje nazewnictwa zapewniają wspólny wygląd bibliotek przeznaczonych docelowo dla środowiska uruchomieniowego CLR.Zmniejsza to czas, który jest wymagany, aby nauczyć się nowej biblioteki oprogramowania oraz zwiększa przekonanie klientów, że biblioteka została opracowana przez osobę, która ma doświadczenie w wytwarzaniu kodu zarządzanego.

Jak naprawić naruszenia

Należy zmienić nazwę, tak aby nie była zgodna z nazwą metody zawierającą prefiks "Get".

Kiedy pominąć ostrzeżenia

Nie należy pomijać ostrzeżenia dotyczącego tej reguły.

[!UWAGA]

Ostrzeżenie to może zostać wykluczone, jeśli metoda Get jest skutkiem implementacji interfejsu IExtenderProvider.

Przykład

Poniższy przykład zawiera metodę i właściwość, które naruszają tę regułę.

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

Powiązane reguły

CA1024: Używaj właściwości wszędzie, gdzie jest to odpowiednie