gpt4 book ai didi

C# static 和 const 变量内存

转载 作者:行者123 更新时间:2023-11-30 19:09:51 26 4
gpt4 key购买 nike

对 C# 静态/常量成员/局部变量有疑问。只想知道在 C# 中分配给未使用的静态/常量成员/局部变量的内存会发生什么情况,在以下示例场景中如何回收内存?

问题是关于静态和常量变量的内存行为[考虑每个应用程序域的内存——静态存储]?这个问题与垃圾收集无关。它是关于内存的,以及(也)有内存的未使用的静态和常量变量会发生什么?

意大利面条代码片段:

/// <summary>
/// Skew your data with every-second-and-annoyed updates
/// </summary>
class Skewgle
{
static Skewgle cloneApele = new Skewgle();
const Skewgle patentMoto = default(dynamic);
static int? dontBeEvilMotto = 1998;
const int ditchMotoToBeEvil = 2014;

static void Main()
{
const Skewgle findYourMailsAlreadyReadBetweenSpamTabs = patentMoto;

if (findYourMailsAlreadyReadBetweenSpamTabs == null)
{
System.Console.WriteLine("findYourMailsAlreadyReadBetweenSpamTabs and patentMoto are null");
}

if (cloneApele != null)
{
System.Console.WriteLine("cloneApele is not null");
}

System.Console.WriteLine("What about dontBeEvilMotto? ditchMotoToBeEvil?");
}
}

谢谢

最佳答案

所有类的静态字段将在首次使用该类的任何实例/静态方法之前初始化(static field initialization in C# spec)。

静态字段是每个应用程序域的,并且在卸载 AppDomain 之前不会为 GC 标记值。

关于C# static 和 const 变量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21808917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com