【发布时间】:2017-01-14 01:52:47
【问题描述】:
正如标题所示,我对静态类何时加载到 .NET(尤其是 C#)中的内存感兴趣。我认为它类似于 Java 中的this question 和关于静态方法的this question,因为它在第一次使用时被加载。此外,一旦它在内存中,它会一直留在那里直到应用程序终止,还是在垃圾收集器来清理使用它的类时被清理?
我意识到静态类使用的少量内存在具有 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
}
}
}
}
【问题讨论】: