C# 这会导致内存泄漏吗?
如果我在公共类中声明这样的静态队列:C# 这会导致内存泄漏吗?,c#,memory-leaks,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
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类
{
私有字符串[]s={“a”、“b”、“c”};
专用静态队列q=新队列;
静态私有方法()
{
私有字符串[]s2={“123”,“345”};
//在这里的某个地方,我重新分配了队列q=新队列(s2);
}
}
我的操作会导致C#中的内存泄漏吗?垃圾回收会收回可能未使用的内存吗?不会。没有任何东西会导致泄漏
一旦
q
引用的对象不再在任何地方被引用,它将被适当地垃圾收集。它不应导致内存泄漏。原始队列由垃圾回收器解除分配。如果“q”引用的任何对象不再在任何地方被引用,垃圾回收器将收集它。可能值得您花时间阅读关于垃圾回收及其工作原理的众多文章中的一篇,例如
不过要回答您的问题,不-这不会导致内存泄漏