Questions tagged «finalization»

15
“处置”是否仅应用于包含非托管资源的类型?
我最近正在与一位同事讨论Dispose实现的价值和类型IDisposable。 我认为IDisposable,即使没有任何非托管资源需要清理,实现应尽快清理的类型也很有价值。 我的同事有不同的看法。执行IDisposable,如果你没有任何非托管资源为你的类型,最终会被垃圾收集是没有必要的。 我的观点是,如果您希望尽快关闭ADO.NET连接,则可以实施IDisposable并且using new MyThingWithAConnection()有意义。我的同事回答说,在幕后,ADO.NET连接是不受管理的资源。我对他的答复是,所有事情最终都是不受管理的资源。 我知道的建议一次性模式,你免费托管和非托管资源,如果Dispose被调用,但如果通过终结/析构函数称为唯一的免费托管资源(和博客前一阵子关于如何提醒消费者不当使用您的IDisposable类型的) 因此,我的问题是,如果您的类型不包含非托管资源,是否值得实现IDisposable?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.