У меня есть константа класса, в которой я храню несколько статических переменных readonly.Должны ли статические свойства в классе Constants реализовывать поля поддержки?
Должен ли я это сделать:
private static readonly int _maxThings = 100;
...
public static int MaxThings { get { return _maxThings; } }
Это кажется отчасти излишним для меня. Есть ли причина, по которой я не буду просто делать следующее?
public static int MaxThings { get { return 100; } }
Редактировать
Хорошо, так что это был мозг пердеть вопроса. Я думаю, дело в том, что если я собираюсь установить это значение при инициализации, тогда имеет смысл использовать статическое поле поддержки и открыть публичное свойство get-only, которое не обязательно должно быть статическим.
Если, однако, мне удобно устанавливать общедоступное статическое свойство на жесткую величину, тогда нет никакой функциональной разницы между этим и просто выпеканием его в сборку. Если нет какой-то другой концепции, которую я здесь отсутствует, в этом случае я бы просто использовал const.
Спасибо за ответы.
Есть ли причина, по которой не нужно делать? public const int MaxThings = 100; – Anero
@Anero, В зависимости от того, кто вызывает код, очень хорошая причина может заключаться в том, что MaxThings не является постоянной.В отличие от PI или Zero, которые действительно постоянны, MaxThings может стать 200 в один день. Поскольку постоянные символы заменяются во время компиляции, другая сборка может не «видеть» изменение до тех пор, пока оно не будет перекомпилировано. – Josh