Compartir a través de


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

Nombre de tipo

PropertyNamesShouldNotMatchGetMethods

Identificador de comprobación

CA1721

Categoría

Microsoft.Naming

Cambio problemático

Causa

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

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

Las convenciones de nomenclatura proporcionan una apariencia común a las bibliotecas orientadas 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