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

时间:2015-01-14 06:01:30

标签: c# garbage-collection

代码看起来像这样。

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;
  }

}

上面这个类就是这样调用的,

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

一旦它出现在使用范围内,clsMisc中的dispose方法就被调用了 我们指定了null。

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

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

有人可以指导我吗?

1 个答案:

答案 0 :(得分:2)

你根本不必担心它,因为收藏家很聪明,因为它是一种托管语言,你应该真的让它成为。

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

但是,如果你没有强行收集,你可以拨打GC.Collect