Je me retrouve souvent à implémenter une classe maintenant une sorte de propriété de statut propre en tant qu'énumération: j'ai une énumération Status et une propriété Status de type Status. Comment dois-je résoudre ce conflit de noms?
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 l'énumération Status était commune à différents types, je la mettrais en dehors de la classe et le problème serait résolu. Mais Status ne s'applique qu'à Car, il n'est donc pas logique de déclarer l'énumération en dehors de la classe.
Quelle convention de dénomination utilisez-vous dans ce cas?
NB: Cette question a été partiellement débattue dans les commentaires d'une réponse à cette question . Comme ce n'était pas la question principale , cela n'a pas eu beaucoup de visibilité.
EDIT: Filip Ekberg suggère une excellente solution de contournement de l'OMI pour le cas spécifique du «statut». Pourtant, je serais intéressant de lire sur les solutions où le nom de l'énumération / propriété est différent, comme dans la réponse de Michael Prewecki .
EDIT2 (mai 2010): Ma solution préférée est de mettre au pluriel le nom du type enum, comme suggéré par Chris S. Selon les directives de MS, cela ne devrait être utilisé que pour les énumérations d'indicateurs. Mais je l'aime de plus en plus. Je l'utilise maintenant aussi pour les énumérations régulières.