A menudo me encuentro implementando una clase que mantiene algún tipo de propiedad de estado propia como una enumeración: tengo una enumeración de estado y una propiedad de estado del tipo de estado. ¿Cómo debo resolver este conflicto de nombres?
public class Car
{
public enum Status
{
Off,
Starting,
Moving
};
Status status = Status.Off;
public Status Status // <===== Won't compile =====
{
get { return status; }
set { status = value; DoSomething(); }
}
}
Si la enumeración de estado fuera común a diferentes tipos, la pondría fuera de la clase y el problema se resolvería. Pero el estado se aplica solo a Car, por lo que no tiene sentido declarar la enumeración fuera de la clase.
¿Qué convención de nomenclatura usa en este caso?
NB: Esta pregunta se debatió parcialmente en los comentarios de una respuesta a esta pregunta . Como no era la pregunta principal , no tuvo mucha visibilidad.
EDITAR: Filip Ekberg sugiere una excelente solución alternativa de la OMI para el caso específico de 'Estado'. Sin embargo, sería interesante leer sobre soluciones donde el nombre de la enumeración / propiedad es diferente, como en la respuesta de Michael Prewecki .
EDIT2 (mayo de 2010): Mi solución favorita es pluralizar el nombre del tipo de enumeración, como sugirió Chris S. De acuerdo con las pautas de MS, esto debe usarse solo para enumeraciones de banderas. Pero me gusta cada vez más. Ahora también lo uso para enumeraciones regulares.