Я часто виявляю себе реалізовуючим клас, що підтримує якусь власну властивість статусу як перерахування: у мене є перелік статусу та ОДНА властивість статусу типу Status. Як мені вирішити цей конфлікт назв?
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(); }
}
}
Якби перелік Status був загальним для різних типів, я б поставив його поза класом, і проблема була б вирішена. Але Статус застосовується лише до автомобіля, тому не має сенсу оголошувати перелік поза класом.
Яку конвенцію іменування ви використовуєте в цьому випадку?
NB: Це питання частково обговорювалось у коментарях до відповіді на це питання . Оскільки це не було головним питанням, воно не мало великої видимості.
РЕДАГУВАТИ: Філіп Екберг пропонує відмінне рішення ІМО для конкретного випадку "Статусу". Тим НЕ менше , я б цікаво читати про рішення , де ім'я перерахувань / власність відрізняється, як і в Майкла Prewecki в відповідь .
EDIT2 (травень 2010 р.): Моє улюблене рішення - це плюралізація імені типу перечислення, як запропонував Кріс С. Відповідно до керівних принципів MS, це слід використовувати лише для перелічень прапорів. Але мені це все більше подобається. Зараз я використовую його і для регулярних зарахувань.