【发布时间】:2021-01-21 06:10:26
【问题描述】:
下面是代码 sn-p,其中我在调用垃圾收集器之前和之后生成变量 int j。
int j = 30;
WriteLine(GC.GetGeneration(j) );
GC.Collect();
WriteLine(GC.GetGeneration(j));
输出应该是
0
1
因为int j 在垃圾收集中幸存但我得到了
0
0
我不明白为什么会这样,因为int 也是 C# 中的一个对象。
PS:我试过在调试和发布模式下运行项目。
【问题讨论】:
-
j是值类型,而不是引用类型,除非值类型是堆分配的,否则它存在于堆栈中并且根本不植根于 GC。你想在这里证明什么?
标签: c# .net garbage-collection