4

私は最近 C# で作業している C/C++ プログラマーであり、いくつかの問題に遭遇した派手な初期化を実行しようとしています。

私が思い付くことができる最も簡単な例は、プログラムの起動時にすぐに作成される「Eager」シングルトンを作成したいということですが、プログラムのメイン関数に入って「Singleton. Instance()" を最初に実行します。静的インスタンス化について調べたところ、静的オブジェクトをインスタンス化する前に呼び出すか作成する必要があるように見えるので、オブジェクトをインスタンス化する静的変数を作成しようとしましたが、うまくいきませんでした。(静的変数がいつインスタンス化/初期化されるかに関するドキュメントは見つかりませんでした)。

ポインタはありますか?

ありがとう!

編集:追加の調査の後、リフレクションを利用した単一のコードブロックで探していることを達成できると思います

4

1 に答える 1

3

静的コンストラクターは、コンストラクターを含むクラスを最初に参照するときにのみ呼び出されます。そのため、プログラムの起動時に初期化コードを実行する場合は、起動コード (Mainメソッドなど) でコンストラクターを含むクラスを明示的に参照する必要があります。

于 2009-04-27T06:11:23.640 に答える