析構函數 用於在類銷毀之前釋放類實例所使用的托管和非托管資源。對應c#應用程序所創建的大多數對象,可以依靠.net Framework的垃圾回收站(GC)
來隱式地執行內存管理任務。但若創建封裝了非托管資源的對象,在應用程序使用完這些非托管資源之后,垃圾回收站將運行對象的析構函數(即Finalize方法)
來釋放這些資源。如下:
class Person { ~Person() { Console.WriteLine("析構函數被調用了"); } }
該析構函數隱式地調用了基類Object的Finalize方法,上面析構函數被隱式地轉換為如下代碼:
protected override void Finalize() { try { Console.WriteLine("析構函數被調用了"); } finally { base.Finalize(); } }
注:在定義析構函數時需要注意以下幾點:
① 不能在結構體中定義析構函數,只能對類使用析構函數;
② 一個類只能有一個析構函數;
③ 無法繼承或重載析構函數;
④ 無法顯式地調用析構函數,析構函數是有垃圾回收器自動調用的;
⑤ 析構函數既沒有修飾符也沒有參數。