如果我使用IDisposable实现一个对象,那么拥有该对象的所有对象是否也应该实现它,即使它们没有其他资源可以释放?
答案 0 :(得分:12)
是。您需要处理它们,以便正确处理您的成员变量。
每次封装IDisposable类时,都应该使您的类具有IDisposable。在Dispose方法中,您应该处置封装的资源。基本上,对待它们的方式与对待本机资源的方式相同。
答案 1 :(得分:1)
如果您想要确定性处理,最终某些客户端需要调用Dispose或将调用包装在“using”块中。要深入到您的对象,可能需要所有者也实现IDisposable。
您不应该依赖垃圾收集器来释放任何与时间相关的资源。
答案 2 :(得分:1)
是的,拥有类应该实现IDisposable,但它不需要(不应该)有一个Finalizer(析构函数)。
答案 3 :(得分:1)
np,他们只需要使用带有“using”语句的类来确保它们正确地处理该对象,但这些对象本身不需要实现IDisposable