Итак, у меня есть класс с членами, которые я использую более или менее как константы. Я не могу назначить их константами, так как они сложнее простого примитива. Поэтому эти «квазиконстанты» многократно используются в разных местах моего приложения. По общему признанию, я, вероятно, перенесу их в файл конфигурации в будущем и буду загружать их динамически.
Однако на данный момент мне было любопытно - хотя они обслуживаются из статического класса, могу ли я вообще извлечь выгоду из их обертывания с ленивым созданием экземпляров? Причина, по которой я спрашиваю, заключается в том, что я не использую каждую «квазиконстанту», и есть некоторые накладные расходы, связанные с построением каждой из них (хотя и очень небольшие). Я не ожидаю какой-либо реальной выгоды от этого, так как это не узкое место или что-то в этом роде, но мне любопытно узнать о передовом опыте. Я недостаточно знаю о внутренностях статических классов, чтобы ответить на этот вопрос самостоятельно. Я знаю, что для доступа к статическим членам не требуется экземпляр класса, хотя в какой-то момент он должен создавать эти члены. Итак, мой вопрос сводится к следующему: когда создаются статические члены статического класса? Если они создаются до использования, могу ли я вообще извлечь выгоду из ленивого создания экземпляров? (создавать их только тогда, когда они запрашиваются?)