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

时间:2016-07-15 16:22:45

标签: c# asp.net .net garbage-collection stack

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

在这种情况下,如果您致电myFunction(),则myStack来电结束后,您的myFunction()变量将被垃圾回收。但是,如果您正在访问myStack方法内的myFunction()变量(来自其他某个范围),则在myFunction()调用结束时不会对其进行垃圾回收,因为(可能)有另一个参考。