私はC#アプリケーションで静的クラスと静的メンバーを何度も使用しましたが、その内部についてもっと考えました。昨日、静的メンバーがメモリに最初にロードされる理由を尋ねられましたか?
正しい質問ですか?はいの場合は、その理由を説明してください。
ありがとう、
静的、またはむしろクラス フィールドは、クラス自体に格納され、クラスのインスタンスにアクセスする必要はありません。クラスは、最初に使用されるとすぐにメモリにロードされ、クラスがロードされるとすぐに、クラス フィールドが使用可能になります。
クラスがロードされると、静的クラスが初期化されます。オブジェクトが作成される前に初期化されます。オブジェクトを初期化する必要がないためです。静的クラスと静的フィールドはいくつでも存在できます。それらはすべて最初に一度だけ初期化されるため、いつでもどこでも使用できます。
説明が役立つことを願っています。
静的メンバーは、実行時に割り当てられるメンバーであり、そのメモリ アドレッシングは不変です。つまり、静的メンバーが初期化されると、プログラムが終了するまでメモリ内の同じ場所に留まります。
そうは言っても、静的メンバーは実行時に初期化されますが、必ずしも最初に初期化されるわけではありません。さらに説明すると、アプリケーションの構造によっては、コンパイル時の定数文字列やその他の定数などを「最初に」割り当てることができます。これは、アプリケーションのメモリ アドレス指定の最初の部分を意味します。
これの非常に優れた機能は、コールする正しいメンバー/メソッドをメモリで「検索」する必要がないため、速度が大幅に向上するという事実です。