为什么有些人使用 Finalize
方法而不是 Dispose
方法?
在什么情况下,您会在 Dispose
方法上使用 Finalize
方法,反之亦然?
最佳答案
终结器方法在您的对象被垃圾回收时调用,您无法保证何时会发生这种情况(您可以强制执行,但这会损害性能)。
另一方面,Dispose
方法旨在由创建您的类的代码调用,以便您可以清理并释放您获得的任何资源(非托管数据、数据库连接、文件句柄等)在代码完成您的对象的那一刻。
标准做法是实现IDisposable
和Dispose
以便您可以在using
语句中使用您的对象。例如 using(var foo = new MyObject()) { }
。在您的终结器中,您调用 Dispose
,以防调用代码忘记处理您。
关于c# - 完成与处置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/732864/