Do Stack() 将由垃圾回收器 .Net 收集

本文关键字:Net 收集 Stack Do | 更新日期: 2023-09-27 17:57:11

myFunction()中,我定义了一个堆栈,如: Stack myStack = new Stack() .如果myStack在服务器上多次运行,myFunction()是否会被 GC 收集? 如果没有,请向我建议一种在 asp.Net 中使用堆栈之类的方法或更好地提高性能的方法。我还在学习 asp.Net

Do Stack() 将由垃圾回收器 .Net 收集

如果在方法中本地声明变量,并且在方法范围之外不存在对它的引用,则在方法结束时,局部变量持有的引用将不再存在。(以前)引用的对象不再具有任何引用,因此符合垃圾回收的条件。

如果您在myFunction()调用范围内使用 myStack 变量,则在myFunction()调用结束之前不会对其进行垃圾回收。例如:

public void myFunction()
{
    Stack myStack = new Stack();
    //do stuff with myStack
}

在这种情况下,如果调用 myFunction() ,则myFunction()调用结束后,将垃圾回收myStack变量。但是,如果要访问 myFunction() 方法内部的 myStack 变量(从其他某个范围),则不会在myFunction()调用结束时对其进行垃圾回收,因为(可能)有另一个对它的引用。