當我們有一個包含使用一個靜態對象的靜態方法的類時,請考慮這種情況。使用靜態成員時釋放資源
public class Person
{
private static PresonActions actions = new PresonActions();
public static void Walk()
{
actions.Walk();
}
}
我知道asp.net應用中靜態成員的生命週期等於appdomain生命週期。 所以這意味着對象不會被銷燬,資源也不會被釋放,直到我重新啓動appdomain。
但是,如果我們將使用一個屬性來創建PresonActions類的一個實例,每次訪問它時,對象是否會被銷燬?
public class Person
{
private static PresonActions actions { get { return new PresonActions(); } }
public static void Walk()
{
actions.Walk();
}
}
謝謝。
如果您沒有任何對該對象的引用,它應該通過GC進行處理。你是否必須爲每個獲得的動作值創建新的PersonActions對象?或者你只是想把它變成一個物業? – Cipi
@Cipi沒有必要的新對象,但我想確保對象不會永遠存在內存中 – jekcom