假设我们有
void Foo() {
var bar = new Bar();
bar.Woo();
}
CLR 会为局部变量使用堆栈吗?
如果不是,为什么?将堆栈用于范围有限的变量而不是使用更昂贵的垃圾收集器不是更有效吗?
最佳答案
不仅 CLR 需要知道作用域是局部的,而且该对象不会被其他任何地方引用。这需要深入的代码分析,除了最微不足道的情况,例如您发布的情况。
关于c# - 在 C# 中,具有局部作用域的对象是否使用堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830280/