Как константа это значение? static
подходит для вещей, которые readonly
, но вы можете быстро попасть в беспорядок, если он не readonly
- особенно если у вас несколько потоков. Коэффициент масштабирования для меня не выглядит жесткой константой, то есть это не так:
public const double ScaleFactor = 1;
Я бы без колебаний использовал статическую переменную для чего-то, что я загружаю один раз и оставляю в покое. Кроме этого, я бы, вероятно, инкапсулировал (в вашем случае) какой-то RenderContext
с этим значением и любыми другими служебными методами - и передавал RenderContext
между методами; это также может помочь вам абстрагироваться от базовой реализации, если вам нужно выполнить модульное тестирование и т. д.
Когда вы обнаружите, что вам нужно больше свойств (и это неизбежно потребуется), вы просто расширяете класс RenderContext
- больше ничего не меняется.
(редактировать)
Кроме того - подумайте о будущем: будете ли вы когда-нибудь делать более одного рендера одновременно? Поскольку у нас у всех сейчас много ядер и т. Д., Статические данные хороши, если все потоки имеют одинаковое значение. Есть [ThreadStatic]
, но это немного грязно по сравнению.