这会导致内存泄漏吗?

use*_*746 0 c# memory-leaks

如果我在公共类中声明这样的静态队列:

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

我的操作会在C#中导致内存泄漏吗?垃圾收集会回收可能未使用的内存吗?

Jus*_*ner 8

不会.没有任何东西会导致泄漏.

一旦q引用的对象不再被引用,它将被适当地垃圾收集.


Gig*_*igi 6

它不应该导致内存泄漏.原始队列由垃圾收集器释放.