Ste*_*don 5 c# garbage-collection weak-references
在C#中,可以创建对象的弱引用,如下所述:
在.net中,一些类还实现了IDisposable接口.调用此接口的Dispose方法以手动处理当前保留的任何托管或非托管资源.一个例子可能是Bitmap对象或类.
如果我将一个实现IDisposable的对象分配给弱引用,如果弱引用收集对象,是否会调用Dispose?
一般来说,答案确实是否定的.
但是,正确实现的类IDisposable使用IDisposable模式实现(希望所有.NET类都这样做).还将实现在对象被垃圾收集时调用的终结器,并且在终结器内部调用它Dispose.因此,对于所有正确的实现IDisposable,Dispose将调用该方法.
(注意:费尔南多的反例没有IDisposable正确实施)