Как видно из названия, меня интересует, когда статические классы загружаются в память в .NET, C# в частности. Я предполагаю, что он похож на this question на Java и this question относительно статических методов, так как он загружается при первом использовании. Кроме того, как только он находится в памяти, он остается там до тех пор, пока приложение не завершится или не будет очищено, когда сборщик мусора придет, чтобы очистить класс, который его использовал?Когда статические классы в .NET загружены в память?
Я понимаю небольшой объем памяти, которую использует статический класс, не очень важно в мире компьютеров с 8 стандартами ОЗУ, но всегда интересно знать внутренности.
Edit:
ответы привели меня хотят, чтобы добавить больше к этому вопросу и выяснить на примере. Если я правильно понял, в приведенном ниже примере 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
}
}
}
}
так что статические не выделяют память во время компиляции? но во время выполнения, когда он впервые использовался? где он хранится? STACK или HEAP? –