可能是重复问题:
在Dispose()中将obj = null(Nothing)有意义吗?
我知道如果这个问题被关闭为重复,但我对这个主题上的一些帖子感到有些困惑。
首先是一些背景。我有一个名为Foo的类,如下所示
public class Foo : IDisposable
{
private Dictionary<int, string> _reallyBigDictionary =
new Dictionary<int, string>();
public void Dispose()
{
_reallyBigDictionary = null;
}
}
我知道 Foo 的实例有限的范围(即,我知道我们不会一直保留它)。鉴于它的实例范围有限,我不明白将 _reallyBigDictionary 设为 null 实际上如何比 dispose 更快地释放内存。我的理解是,在垃圾回收运行之前,这些对象永远不会被清除。在那时,给定的 Foo 实例的引用将无论如何为空,因此我期望 GC 无论如何都会回收该内存。
这些帖子让我相信设置成员变量为 null 没有意义:
这篇帖子让我产生了不同的想法: IDisposable 接口的正确使用方法
有人能为我澄清这一点吗?在这里真的需要实现IDisposable吗?因为我无法让自己相信这一点。