Когда статического конструктора вызывают в C#?

Когда я запустил свой переключатель от VBScript до JavaScript, я был сразу приведен в восторг с JQuery. После короткого времени я начал действительно понимать, как JavaScript и JQuery взаимодействовали друг с другом, и я стал немного смущенным и расстроенным. Моя проблема была с требованием использовать простоту JQuery, но я чувствовал, что обманывал меня, не изучая JavaScript сначала.

оказалось, что я изучил обоих одновременно. Поскольку я записал стандартные программы JQuery, я нашел потребность изучить JavaScript для понимания, почему вещи проложили себе путь, они сделали и помочь заставить определенные стандартные программы JQuery работать правильно.

я все еще изучаю JavaScript и JQuery, но я намного менее обеспокоен становлением ведущим устройством JavaScript, поскольку я знаю, что мое понимание вырастет, поскольку это должно. Это определенно помогает иметь некоторое основное понимание JavaScript, но я сказал бы, что необходимо сфокусироваться на изучении, как выполнить определенные задачи а не на изучении JavaScript перед JQuery...

Моя ценность за 0,02$.

81
задан Jason 17 September 2009 в 07:58
поделиться

3 ответа

При первом обращении к классу.

Статические конструкторы (Руководство по программированию на C #)

Статический конструктор используется для инициализации любого статические данные или для выполнения определенного действия, которое необходимо выполнить только один раз. Он вызывается автоматически перед созданием первого экземпляра или перед ссылками на статические члены.

87
ответ дан 24 November 2019 в 09:38
поделиться

Это не так просто, как можно было ожидать, несмотря на простую документацию. В статье Джона Скита http://csharpindepth.com/Articles/General/Beforefieldinit.aspx подробно рассматривается этот вопрос.

Резюме:

Статический конструктор гарантированно будет выполнен немедленно перед первой ссылкой на член этого класса - либо создание экземпляра, либо собственного статического метода / свойства класса.

Примечание что статические инициализаторы (если нет статического конструктора) гарантированно будут выполнены в любое время перед первой ссылкой на конкретное поле.

37
ответ дан 24 November 2019 в 09:38
поделиться

Статический конструктор вызывается перед использованием чего-либо в классе, но когда именно это произойдет, зависит от реализация.

Он гарантированно будет вызван до обращения к первому статическому члену и до создания первого экземпляра. Если класс никогда не используется, не гарантируется, что статический конструктор будет вызван вообще.

19
ответ дан 24 November 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: