Я хочу создать объект, подобный перечислению, но с дополнительным «свойством».Как создать перечисление C# с более чем одним свойством
Например я мог бы день недели перечисления:
enum Day {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
Теперь, скажем, у меня есть еще одно свойство, я хочу, чтобы хранить на каждый день. Что-то, что никогда не меняется. Ради аргумента, скажем, у нас есть ставка оплаты, которая никогда не меняется и составляет 1,5 в субботу, 2 в воскресенье и 1 в противном случае.
Невозможно сделать это с перечислением. Я думал о создании «вспомогательного» статического класса, который просто вернул бы это второе свойство, но это кажется неуклюжим.
static class Rate
{
static float GetRate(Day d)
{
switch (d)
{
case Day.Saturday:
return 1.5f;
case Day.Sunday:
return 2f;
default:
return 1f;
}
}
}
Вместо перечисления с вспомогательным классом я мог бы использовать ReadOnlyCollection, но это кажется сложным и тяжелый вес за то, что мне нужно.
Каков наилучший путь?
насчет KeyValue пары? или словарь? – ViVi
Ваш код выглядит хорошо для меня. – TaW
@ViVi они не постоянны/доступны только для чтения – under