C#中垃圾回收器如何释放内存

How garbage collector releases memory in C#

代码如下所示。

public class clsMisc : IDisposable {
  List<clsEmployee> lst = new List<clsEmployee>();

  void Add(){
     lst.Add(obj);
     //Adding to it list here
  }

  public void Dispose()
  {
    lst = null;
  }

}

上面的class是这样调用的,

Using( clsMisc obj = new clsMisc()){
 //Here goes the code
}

一旦它离开 using 范围,就会调用 clsMisc 中的 dispose 方法,并在那 我们分配了空值。

是否会释放存储在内存中的值(列表中 clsEmployee 的现有记录)并分配新值,或者创建一个新的 List 实例并分配空值?

因为我是新手,所以无法理解这种行为。

有人可以指导我吗?

你根本不必担心它,因为收集器相当聪明,而且因为它是一种托管语言,你真的应该随它去吧。

收集器将决定何时需要进行清理,因此无法保证何时完成工作。

但是如果你对强制收集死心塌地,你可以调用 GC.Collect