Я создаю класс поиска, поэтому постоянное значение будет использоваться во всех проектах.Дело в том, что есть несколько решений для создания такой вещи.Я мог бы создать отдельный класс с перечислениями, структурами или константами в нем или создать отдельный класс для каждого «объекта».Мне интересно, что было бы лучшим решением.
Сначала я подумал сделать что-то вроде этого:
public static class Defines
{
public enum PAGELAYOUT_NAMES
{
STANDARD = "Standard"
}
}
Но лично мне не очень нравится использовать строки в перечислениях.Другой вариант - использовать структуру, что еще более уродливо, если вы видите код:
public static class Defines
{
public struct PAGELAYOUT_NAMES
{
public static string STANDAARD = "Standaard";
}
}
Это выглядит немного лучше, но это может сбить с толку при наличии большого количества параметров:
public static class Defines
{
public const string PAGELAYOUT_NAMES_STANDARD = "Standard";
}
При наборе этого поста, я думаю, это будет лучший / чистый вариант:
public static class PageLayout
{
public const string STANDARD = "Standard";
}
Есть еще какие-нибудь предложения?Заполнение проекта несколькими классами, которые определяют только некоторые константы, кажутся мне чрезмерными и беспорядочными.
Редактировать В исходном контексте это было не очень понятно, но поискзначения не ограничиваются только строками.Некоторые очень хорошие предложения ниже возможны только тогда, когда вы используете только строки, но также должны поддерживаться Int, DateTime и другие типы.Получив несколько хороших идей из ответов здесь, я попробую, какой из них будет работать лучше всего в моем текущем проекте.
Окончательно реализованное решение Благодаря приведенным ниже предложениям я реализовалклассы поиска вот так:
internal class Base<T>
{
internal T Value{ get; private set;}
internal Base(T value)
{
Value = value;
}
}
public class PageLayout
{
public static string Standard { get { return new Base<string>("Standard").Value; } }
}
Это основано на ответе, приведенном ниже.Причина в том, что теперь я могу использовать это и для нестроковых и целых чисел, что на самом деле невозможно при перечислении с описанием и файлом ресурсов, хотя мне это кажется чище.