Często zdarza mi się implementować klasę, która utrzymuje jakąś własną właściwość statusu jako wyliczenie: mam wyliczenie Status i JEDEN Właściwość Status typu Status. Jak mam rozwiązać ten konflikt nazw?
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(); }
}
}
Gdyby wyliczenie Status było wspólne dla różnych typów, umieściłbym je poza klasą i problem zostałby rozwiązany. Ale Status dotyczy tylko samochodu, dlatego nie ma sensu deklarowanie wyliczenia poza klasą.
Jakiej konwencji nazewnictwa używasz w tym przypadku?
Uwaga: to pytanie było częściowo omawiane w komentarzach do odpowiedzi na to pytanie . Ponieważ nie było to główne pytanie, nie było zbyt dobrze widoczne.
EDYCJA: Filip Ekberg sugeruje doskonałe obejście IMO dla konkretnego przypadku „Status”. Byłbym jednak interesujący, gdyby przeczytał o rozwiązaniach, w których nazwa wyliczenia / właściwości jest inna, jak w odpowiedź .
EDIT2 (maj 2010): Moim ulubionym rozwiązaniem jest dodanie liczby mnogiej nazwy typu wyliczenia, zgodnie z sugestią Chrisa S. Zgodnie z wytycznymi MS, powinno to być używane tylko dla wyliczeń flag. Ale coraz bardziej to lubię. Teraz używam go również do zwykłych wyliczeń.