析構(gòu)函數(shù)(destructor):可以在一個類的實例不再被引用的時候執(zhí)行一些操作和屎,以清除或釋放非托管資源
注意幾點:
1.每個類只能有一個析構(gòu)函數(shù)
2.析構(gòu)函數(shù)不能有參數(shù)和訪問修飾符寺谤,名稱與類名相同炼彪,在類名前加~
3.析構(gòu)函數(shù)只能用于類的實例洲尊,沒有因此靜態(tài)析構(gòu)函數(shù)
Class1
{~Class1()
??????? {?CleanupCode
???????? }
}
重點:標準dispose模式(非常棒)
1.析構(gòu)函數(shù)和Dispose方法的邏輯是贩猎,如果代碼由于某種原因沒有調(diào)用Dispose,那么析構(gòu)函數(shù)應(yīng)該調(diào)用它蜗顽,并釋放資源
2.在Dispose方法最后應(yīng)調(diào)用GC.SuppressFinalize方法,通知CLR不要調(diào)用該對象的析構(gòu)函數(shù)雨让,因為代碼的清除工作已經(jīng)完成
下面的解釋很重要