タイトルが示唆するように、静的クラスが.NET、特にC#のメモリにロードされるときに興味があります。私は、Javaでthis question、静的メソッドに関してはthis questionに似ていると想定しています。最初に使用されるときに読み込まれるという点です。また、メモリに格納されると、アプリケーションが終了するか、ガベージコレクタがそれを使用したクラスをクリーンアップするときにクリーンアップされるまでそこにとどまりますか?.NETで静的クラスがメモリにロードされるのはいつですか?
静的なクラスが使用するメモリの量が少ないことは、8 GBのRAM標準を搭載したコンピュータの世界ではあまり重要ではないことを認識していますが、内部を知ることは常に面白いです。
編集:
答えは、私はこの質問に多くを追加し、例を明確にしたいつながりました。私が正しく理解している場合、以下の例でContraption.SomeStringが最初にContraption.AnotherStringに続いてメモリに配置されます。
public static class Contraption
{
public static string SomeString = "Some String";
public static string AnotherString = "Another String";
}
public class Processor
{
public void Process(List<SomeClass> items)
{
foreach(var item in items)
{
if(item.Name == Contraption.SomeString)
{
//do something
}
if(item.Name == Contraption.AnotherString)
{
//do something
}
}
}
}
静的なのでコンパイル時にメモリが割り当てられませんか?実行時に最初に使用されたとき?それはどこに保存されますか?スタックまたはHEAP? –