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

本文关键字:释放 内存 | 更新日期: 2023-09-27 18:37:22

代码看起来像这样。

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 方法就会调用并在其中我们分配了空值。

存储在内存中的值(列表中 clsEmployee 的现有记录)将被释放并分配新值,或者它将创建列表的新实例并分配空值?

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

有人可以指导我吗?

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

您根本不需要担心它,因为收集器相当聪明,并且因为它是一种托管语言,因此您应该真正使用它。

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

但是,如果您死心塌地地想要强制收集,则可以调用GC.Collect