天天看點

C# Finalize 與 Dispose

1、使用場景:

     Finalize:Finalize 是 Object的方法,C# 類中使用了非托管資源,重寫Finalize ,在方法内部釋放非托管資源。進而保證了目前類被釋放的同時,也釋放了内部使用的非托管資源。這裡的重寫不能使用override,而是使用析構函數來達到同樣效果。

     Dispose:Dispose是 接口IDisposable的方法,實作Dispose方法,對象自身釋放非托管資源。

2、調用Finalize告訴GC回收目前對象,即使不調用Finalize,GC也會在恰當的時機回收該對象;對象必須手動調用Dispose,釋放自身。為了更好地了解,有些類對Dispose 方法進行包裝,提供一個更合适的方法名,比如IO中的Close方法。