C # создать / инициализировать объект при запуске программы - PullRequest
4 голосов
/ 27 апреля 2009

Я программист на C / C ++, недавно работающий на C #, и я пытаюсь сделать некоторые причудливые вещи инициализации, с которыми у меня возникли некоторые проблемы.

Лучший и самый простой пример, который я могу придумать, это то, что я хочу создать синглтон "Eager" - тот, который создается сразу при запуске программы, но мне не нужно переходить к основной функции программы и говорить "Singleton.Instance ()" как первое. Я прочитал о статической реализации, и похоже, что ее нужно вызывать или создавать до создания статического объекта, поэтому я попытался создать статическую переменную, которая создает экземпляр объекта, но это не сработало. (Я не смог найти никакой документации о том, когда создаются / инициализируются статические переменные).

Есть указатели?

Спасибо!

Редактировать: после некоторого дополнительного исследования, я думаю, что могу выполнить то, что я ищу, с помощью одного блока кода с использованием отражения

1 Ответ

2 голосов
/ 27 апреля 2009

Статический конструктор вызывается только при первом обращении к классу, который содержит конструктор. Поэтому, когда вы хотите, чтобы ваш код инициализации запускался при запуске программы, вы должны явно ссылаться на класс, содержащий конструктор в вашем коде запуска (например, метод Main).

...