Каким способом лучше хранить большое количество константных значений в C#?

Пишу PCL библиотеку для разработчиков. Нужно хранить очень большое количество константных значений.
В некоторых методах в качестве параметра есть List. В нем должны храниться строковые параметры, которые будут использоваться при формировании запроса на сервер. Пользователь не нужно будет вручную вводить параметры в List, а просто выбирать нужные константы из нужных классов.

Параметры я оформил в таком стиле:

class A
{
        public const string DamageAvg = "damage_avg";
        public const string DamageAvgRank = "damage_avg.rank";
        public const string DamageAvgRankDelta = "damage_avg.rank_delta";
        public const string DamageAvgValue = "damage_avg.value";
}

Таких классов у меня десятки с десятками, иногда и сотней констант.

Внимание, вопрос!

Хранить большое количество констант является хорошим тоном и если нет, то каким образом можно все это по другому реализовать?
  • Вопрос задан
  • 4565 просмотров
Решения вопроса 1
Можно использовать вложенные классы
static class A
{
        public static class DanageAvg {
                public const string Self = "damage_avg";
                public const string Rank = "damage_avg.rank";
                public const string RankDelta = "damage_avg.rank_delta";
                public const string Value = "damage_avg.value";
        }
        public static class Other {
                public const string Self = "other_value";
                public const string Somthing = "other_value.something";
                public const string Other = "other_value.other";
        }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
aush
@aush
Для таких вещей есть стандартное встроенное средство - ресурсные (.resx) файлы.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Так как Enum поддерживает только int, придется придумывать различные исхищрения.

а для чего вам эти константы, где они используются? Возможно можно избавиться от них?
Ответ написан
HaJIuBauKa
@HaJIuBauKa
У Enum есть атрибут Description, который можно считать. Можно реализовать / навесить другие атрибуты.
Только вот зачем хранить такое количество нужных данных в константах.
Пользователь их будет выбирать где? Если в интерфейсе UI возможно стоит перейти на БД либо XML хранение? Тогда все будет строго каталогизировано и структурировано. А так "каша" какая-то получается в коде.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы