Между членами моей команды ведутся дебаты по поводу объявления класса Constants. Мы перемещаем постоянные переменные в отдельный класс, как показано ниже.
public class Constants
{
public const string StateId = "ST";
public const string CountryId = "CI";
}
Несколько членов моей команды предложили объявить класс запечатанным, чтобы избежать переопределения, а некоторые предлагают пометить его как статический, чтобы избежать создания экземпляра класса Constant.
Однако я предпочитаю использовать его как Sealed со статическим конструктором, так как это поможет нам инициализировать переменные только для чтения в будущем. Пожалуйста, дайте нам несколько советов по этому вопросу.
static
. Это полностью ортогонально наличию или отсутствию статического конструктора.Ответы:
Не совсем понятно, каков ваш вопрос, но если значения действительно постоянны, я не вижу проблемы с простым вариантом:
Использование
static
в объявлении класса сигнализирует о вашем намерении для целей этого класса.Марк Гравелл описывает некоторые потенциальные проблемы с константами в этом ответе переполнения стека . Только вы будете знать, если это проблема в вашей кодовой базе, но если значения могут когда-либо измениться, используйте
public static readonly
вместоconst
, иначе любой код, ссылающийся на константы, необходимо будет перестроить, если значения изменятся.источник
const
, увеличение производительности обычно не стоит рисков потенциальных проблем в будущем, ИМХО. Я предпочитаю использоватьpublic static readonly
переменные для констант.