.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编辑  收藏  举报

导航