Я не верю, что сгенерированный код будет проверять, был ли класс инициализирован каждый раз, когда он обращается к статическому члену (который включает функции).Я считаю, что проверка каждого доступа будет неэффективной. Я просмотрел §17.11 в ECMA 334, и там сказано
. Выполнение статического конструктора запускается первым из в домене приложения должны произойти следующие события:
- Создается экземпляр класса.
- Ссылка на любой из статических членов класса.
Похоже, что не определено, как определить, когда происходит «первое». Я не могу придумать, как это сделать, кроме как проверять каждый раз. Как это можно сделать?