【c# 學習筆記】析構函數


  析構函數 用於在類銷毀之前釋放類實例所使用的托管和非托管資源。對應c#應用程序所創建的大多數對象,可以依靠.net Framework的垃圾回收站(GC)

來隱式地執行內存管理任務。但若創建封裝了非托管資源的對象,在應用程序使用完這些非托管資源之后,垃圾回收站將運行對象的析構函數(即Finalize方法)

來釋放這些資源。如下:

  

    class Person
    {     
         ~Person()
        {
            Console.WriteLine("析構函數被調用了");          
        }
 
    }

  該析構函數隱式地調用了基類Object的Finalize方法,上面析構函數被隱式地轉換為如下代碼:

  

    protected override void Finalize()
    {
        try
        {
            Console.WriteLine("析構函數被調用了");
        }
       finally
        {
             base.Finalize();
        }
    }

  注:在定義析構函數時需要注意以下幾點:

    ① 不能在結構體中定義析構函數,只能對類使用析構函數;

    ② 一個類只能有一個析構函數;

    ③ 無法繼承或重載析構函數;

    ④ 無法顯式地調用析構函數,析構函數是有垃圾回收器自動調用的;

    ⑤ 析構函數既沒有修飾符也沒有參數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM