在類的實例超出范圍時,我們希望確保它所占的存儲能被收回。C#中提供了析構函數,用於專門釋放被占用的系統資源。
析構函數的名字與類名相同,只是在前面加上了一個符號“~”。析構函數不接受任何參數,也不返回任何值。如果你試圖聲明其它任何一個以符號“~”開頭而不與類名相同的方法,和試圖讓析構函數返回一個值一樣,編譯器都會產生一個錯誤。
析構函數不能是繼承而來的,也不能顯式地調用。當某個類的實例被認為不再有效,符合析構的條件,析構函數就可能在某個時刻被執行。C++程序員常常需要在析構函數中寫上一系列delete語句來釋放存儲,而在C#中,我們不必再為此擔心了。垃圾收集器會幫助我們完成這些易被遺忘的工作。