Property names should not match get methods
TypeName |
PropertyNamesShouldNotMatchGetMethods |
CheckId |
CA1721 |
Category |
Microsoft.Naming |
Breaking Change |
Breaking |
Cause
The name of a public or protected member starts with 'Get' and otherwise matches the name of a public or protected property. For example, a type that contains a method named 'GetColor' and a property named 'Color' violates this rule.
Rule Description
Get methods and properties should have names that clearly distinguish their function.
Naming conventions provide a common look for libraries that target the common language runtime. This reduces the time it takes to learn a new software library, and increases customer confidence that the library was developed by someone with expertise in developing managed code.
How to Fix Violations
Change the name so that it does not match the name of a method prefixed with 'Get'.
When to Exclude Warnings
Do not exclude a warning from this rule.
Example
The following example contains a method and property that violate this rule.
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();
}
}
}