.NET中Finalize方法的实现方法
1 Class DemoDispose 2 Private m_disposed As Boolean = False 3 Public Sub Dispose() 4 If (Not m_disposed) Then 5 ' Call cleanup code in Finalize. 6 Finalize() 7 ' Record that object has been disposed. 8 m_disposed = True 9 ' Finalize does not need to be called. 10 GC.SuppressFinalize(Me) 11 End If 12 End Sub 13 Protected Overrides Sub Finalize() 14 ' Perform cleanup here 15 End Sub 16 End Class
由于.NET的GC机制,在Finalize中实现析构逻辑并显示地调用Finalize来析构对象以达到释放占用的资源的目的并不可取,因此可以采取上面的方式在Dispose中实现析构逻辑并显示地调用Dispose来释放占用的资源。但是如果存在多个引用,就有可能出现问题,因此使用IDisposable接口和Using关键字的组合,比较好。
posted on 2013-11-14 21:44 Cowboy's Blog 阅读(293) 评论(0) 编辑 收藏 举报