2012-09-11 147 views
0

如果我宣佈一個靜態的隊列這樣的公共類中:這會造成內存泄漏嗎?

public class c 
{ 
    private string[] s={"a","b","c"}; 
    private static Queue<string> q = new Queue<string>(s); 

    static private void SomeMethod() 
    { 
    private string[] s2 = {"123","345"}; 
    // somewhere in here I reassign the queue q = new Queue<string>(s2); 
    } 
} 

我的行爲導致C#中的內存泄漏?垃圾回收會追回可能未使用的內存嗎?

回答

8

不會有什麼會導致泄漏。

一旦q引用的對象不再被引用到任何地方,它就會被適當地垃圾收集。

6

它不應該導致內存泄漏。原始隊列由垃圾回收器解除分配。

2

如果任何'q'引用的對象不再被引用到任何地方,垃圾收集器將收集它。