这是一个非常基本的问题,但我认为最好问一下。让我们假设我有以下代码片段。
List<String> mystringlist1 = new List<String>();
List<String> mystringlist2 = new List<String>();
mystringlist2.Add("hello1");
mystringlist2.Add("hello2");
mystringlist2.Add("hello3");
//Now I assign the second list to first list
mystringlist1 = mystringlist2;
现在,这两个列表将指向相同的内存位置,并且尝试访问各个元素将导致上述列表中的元素相同。
如果是这样,
请注意,它将在垃圾收集器的下一个通道中进行收集以进行生成。由于时间不长,因此应该仍在Gen0中,并且要尽快收集。并非所有变量都是如此,因此,当真正没有变量时,可能会出现内存泄漏。
另一个例外是使用非托管内存(例如Bitmap
)的任何东西,这些内存需要在使用后进行处置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句