gpt4 book ai didi

c# - C# 引用类型在方法内存活多久?

转载 作者:行者123 更新时间:2023-12-02 19:23:50 26 4
gpt4 key购买 nike

对此我找不到明确的答案。如果我在方法内实例化引用类型但不将其存储在任何类变量上,则该引用在堆上存在多长时间?它是否在方法返回时被标记为垃圾并最终被垃圾收集器清除?

void DoSomeStuff()
{
var myRefInstance = new Object();
}

最佳答案

无法访问的对象被标记为可收集。对象何时被回收取决于GC;如果没有内存压力,在应用程序结束之前它可能永远不会被收集。

需要注意的是,规则是“对象不可到达”,而不是没有引用指向它,这是不一样的:

void Foo() {
var a = new A();
var b = new B();
a.b = b;
b.a = a; }

Foo 退出时,ab 都将被标记为无法访问,即使两者的引用计数器都大于 0。

关于c# - C# 引用类型在方法内存活多久?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62654411/

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