gpt4 book ai didi

c# - 在 C# 中保持对象存活

转载 作者:太空狗 更新时间:2023-10-30 00:49:01 26 4
gpt4 key购买 nike

我有一个 class X与大尺寸现场成员y (就内存而言)被声明为静态成员,我注意到每次实例化 X 的对象时,该字段在内存中加载或重新加载。 y 的底层结构是 dictionary<string,int>它拥有大约 5000 kvs。有没有办法声明y作为一个单独的显式字典并在应用程序生命周期内保持它的活力?

请注意:X 的对象可以在运行时被释放,所以更准确的问题是:如果字典被声明为类的静态成员,如果类的对象被垃圾收集,静态成员是否会保留在内存中还是明确销毁?

最佳答案

您正在类的实例构造函数中重新实例化您的静态字段,这会导致字典变量的重新加载/重新实例化。在类中声明的地方内联初始化静态字段

static Dictionary<string, int> y = new Dictionary<string, int>() {kvs};

在静态构造函数中

static Dictionary<string, int> y;
static myClass()
{
y = new Dictionary<string, int>() {kvs};
}

类的静态构造函数或静态字段初始值设定项在其生命周期内只运行一次。

关于c# - 在 C# 中保持对象存活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41308671/

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