1

私はC#アプリケーションで静的クラスと静的メンバーを何度も使用しましたが、その内部についてもっと考えました。昨日、静的メンバーがメモリに最初にロードされる理由を尋ねられましたか?

正しい質問ですか?はいの場合は、その理由を説明してください。

ありがとう、

4

3 に答える 3

3

静的、またはむしろクラス フィールドは、クラス自体に格納され、クラスのインスタンスにアクセスする必要はありません。クラスは、最初に使用されるとすぐにメモリにロードされ、クラスがロードされるとすぐに、クラス フィールドが使用可能になります。

于 2013-04-29T06:53:32.017 に答える
2

クラスがロードされると、静的クラスが初期化されます。オブジェクトが作成される前に初期化されます。オブジェクトを初期化する必要がないためです。静的クラスと静的フィールドはいくつでも存在できます。それらはすべて最初に一度だけ初期化されるため、いつでもどこでも使用できます。

説明が役立つことを願っています。

于 2013-04-29T06:55:17.703 に答える
2

静的メンバーは、実行時に割り当てられるメンバーであり、そのメモリ アドレッシングは不変です。つまり、静的メンバーが初期化されると、プログラムが終了するまでメモリ内の同じ場所に留まります。

そうは言っても、静的メンバーは実行時に初期化されますが、必ずしも最初に初期化されるわけではありません。さらに説明すると、アプリケーションの構造によっては、コンパイル時の定数文字列やその他の定数などを「最初に」割り当てることができます。これは、アプリケーションのメモリ アドレス指定の最初の部分を意味します。

これの非常に優れた機能は、コールする正しいメンバー/メソッドをメモリで「検索」する必要がないため、速度が大幅に向上するという事実です。

于 2013-04-29T06:53:54.910 に答える