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