2016-07-15 52 views
-2

myFunction(),我定義了一個堆棧,如:Stack myStack = new Stack()。將myStack通過GC或不在服務器上,如果myFunction()多次運行採集?如果不是,請建議我在asp.Net中使用類似堆棧的方式,或者更好地提高性能。我還在學習有關asp.Net待辦事項棧()將收集由垃圾收集器的.Net

回答

0

如果一個變量的方法局部聲明和對它的引用方法的範圍之外存在,那麼在方法結束時,參考舉行由當地變量將不再存在。 (之前)被引用的對象不再具有任何引用,因此有資格進行垃圾回收。

+0

myStack是我在我的模型作爲自定義驗證程序使用一個類裏面。所以模型檢查合格時它完全由GC收集,對嗎? – Nampd

+0

@Nampd它是方法中的局部變量還是類中的某個屬性或屬性? – spender

+0

這是@spender – Nampd

0

如果您正在使用myFunction()調用範圍內的myStack變量,它將不會被垃圾收集,直到調用myFunction()結束。例如:

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

在這種情況下,如果你打電話myFunction(),你myStack變量將被垃圾收集一旦你myFunction()通話結束。然而,如果要訪問(從一些其他範圍)的myFunction()方法內的myStack變量,它不會被垃圾收集在myFunction()呼叫結束,因爲沒有(可能)的另一參考它。