Muitas vezes me vejo implementando uma classe que mantém algum tipo de propriedade de status própria como um enum: Eu tenho um enum de Status e UMA propriedade de Status do tipo Status. Como devo resolver esse conflito de nome?
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(); }
}
}
Se o enum Status fosse comum a diferentes tipos, eu o colocaria fora da classe e o problema seria resolvido. Mas Status se aplica a Car apenas, portanto, não faz sentido declarar o enum fora da classe.
Que convenção de nomenclatura você usa neste caso?
NB: Esta questão foi parcialmente debatida nos comentários de uma resposta a esta questão . Como não era a questão principal , não teve muita visibilidade.
EDITAR: Filip Ekberg sugere uma excelente solução alternativa da IMO para o caso específico de 'Status'. Ainda assim, seria interessante ler sobre soluções em que o nome do enum / propriedade é diferente, como na resposta de Michael Prewecki .
EDIT2 (maio de 2010): Minha solução favorita é pluralizar o nome do tipo enum, conforme sugerido por Chris S. De acordo com as diretrizes do MS, isso deve ser usado apenas para enums de sinalizador. Mas passei a gostar cada vez mais. Agora também o uso para enums regulares.