1

我知道使用 Dispose() 类应该从 IDisposable 继承,但是在我的应用程序中,一个类没有继承 IDisposable,如果我只是将 null 分配给 fooObject,它会释放资源吗?

谢谢!

4

2 回答 2

3

分配给null通常没有帮助(如果您要释放一个对象上的一个字段会更长寿,这主要是有用的) - 它当然不会强制收集。Dispose()与收藏无关,适用于您需要的时候。如果您没有任何需要提示的Dispose()资源(非托管资源、连接等),则IDisposable无需实施。

不理会 GC - 它会在选择时有效地收集,这在“常规”.NET 上意味着分代方案;短暂的对象收集起来非常有效。

于 2012-04-09T10:25:35.223 回答
0

如果一个对象是您自己的类,并且您在其中放置了一个处置机制并处置它而不是为其分配空值,那么更好,因为这将使您能够更好地控制内存和性能。

明确地销毁对象根本不是一个坏习惯。GC 为我们做了这些事情,但系统必须等待对象何时超出范围以及何时准备好进行垃圾回收。这可能需要一些时间,因此最好处置已处于无用状态的对象。

于 2012-04-09T10:25:54.433 回答