Condividi tramite


CA1721: I nomi delle proprietà non devono corrispondere ai metodi get

TypeName

PropertyNamesShouldNotMatchGetMethods

CheckId

CA1721

Category

Microsoft.Naming

Breaking Change

Breaking

Causa

Il nome di un membro pubblico o protetto inizia con "Get" e per il resto corrisponde al nome di una proprietà pubblica o protetta. Ad esempio, un tipo che contiene un metodo denominato "GetColor" e una proprietà denominata "Color" viola questa regola.

Descrizione della regola

I metodi Get e le proprietà devono presentare nomi che distinguono chiaramente la loro funzione.

Le convenzioni di denominazione forniscono un aspetto comune alle librerie che si avvalgono di Common Language Runtime. In questo modo, si riduce il tempo necessario per l'apprendimento di una nuova libreria software e i clienti possono confidare nel fatto che la libreria sia stata sviluppata da esperti nello sviluppo di codice gestito.

Come correggere le violazioni

Modificare il nome in modo che non corrisponda al nome di un metodo con prefisso "Get".

Esclusione di avvisi

Non escludere un avviso da questa regola.

Nota

È possibile escludere questo avviso se il metodo Get è causato dall'implementazione dell'interfaccia IExtenderProvider.

Esempio

Nell'esempio riportato di seguito sono contenuti un metodo e una proprietà che violano questa regola.

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

Regole correlate

CA1024: Utilizzare proprietà dove appropriato