Compartir a través de


CA1721: Los nombres de propiedades no deberían coincidir con los métodos Get

TypeName

PropertyNamesShouldNotMatchGetMethods

Identificador de comprobación

CA1721

Categoría

Microsoft.Naming

Cambio problemático

Problemático

Motivo

El nombre de un miembro público o protegido comienza con "Get" y en cualquier otro caso coincide con el nombre de una propiedad pública o protegida.Por ejemplo, un tipo que contiene un método denominado "GetColor" y una propiedad denominada "Color" infringe esta regla.

Descripción de la regla

Las propiedades y métodos Get deberían tener nombres que distingan claramente su función.

Las convenciones de nomenclatura proporcionan una apariencia común para las bibliotecas destinadas a Common Language Runtime.Esto reduce el tiempo de aprendizaje necesario para la nueva biblioteca de software y aumenta la confianza por parte del cliente en lo que respecta a que la biblioteca fue desarrollada por un especialista en desarrollo de código administrado.

Cómo corregir infracciones

Cambie el nombre para que no coincida con el nombre de un método con el prefijo "Get".

Cuándo suprimir advertencias

No suprima las advertencias de esta regla.

[!NOTA]

Se puede excluir esta advertencia si el método Get se produce por la implementación de la interfaz IExtenderProvider.

Ejemplo

El ejemplo siguiente contiene un método y una propiedad que infringen esta regla.

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

Reglas relacionadas

CA1024: Utilizar las propiedades donde corresponda