Por ejemplo, una clase como:
class Dog { } //never mind that there's nothing in it...
y luego una propiedad como:
Dog Dog { get; set; }
Me han dicho que si no puedo encontrar un nombre más imaginativo para él, entonces debo usar:
Dog DogObject { get; set; }
¿Alguna idea sobre cómo nombrarlos mejor?
c#
naming
properties
Tormenta kiernan
fuente
fuente
Person
clase que contiene unaDog
propiedad llamadaDog
Respuestas:
Podría ser una mala práctica, si no fuera por el hecho de que ya es bastante obvio de qué estás hablando en tu código, según el contexto.
¿Cuál es el constructor de tipos? Cual es el objeto? No confundido? OK, que tal
Cual es el objeto? ¿Cuál es el método de fábrica estático en el tipo? ¿Todavía no estás confundido? No lo creo.
La única vez que he visto que esto es un problema potencial es cuando el árbol del espacio de nombres se vuelve bastante elaborado, y el compilador no puede descubrir la ambigüedad, en cuyo caso terminas con algo como
En cualquier caso, esto solo debería suceder con las Propiedades automáticas (y tal vez enumeraciones), ya que los nombres de las variables locales siempre son camelCased, evitando por completo la ambigüedad.
fuente
Dog
llamara un método de instanciaCreate
, pero en ese momento se estaría sumergiendo en algunas prácticas de codificación bastante terribles.No solo es una práctica razonable, el lenguaje fue diseñado específicamente para permitir esto. Busque la especificación de C # para "Color Color" para las reglas y una justificación, y vea
http://blogs.msdn.com/b/ericlippert/archive/2009/07/06/color-color.aspx
para algunos casos interesantes que surgen de esta decisión.
Bajo ninguna circunstancia debe nombrar una propiedad "DogObject" para evitar llamarla igual que su tipo; eso contradice directamente las pautas de diseño del marco.
fuente
Color
), dicho uso parece razonable. Sin embargo, no me gusta tanto con mutable oIDisposable
tipos. ¿Los "controlesFont
" se refieren a aquellos aspectos del estado que están encapsulados por la propiedad, o a la instanciaFont
identificada por el comprador de la propiedad?Está perfectamente bien llamarlo
Dog
y, de hecho, esto es lo que Microsoft recomienda en las pautas de nomenclatura de Framework :Y aquí está el ejemplo que usan en la guía anterior:
fuente