前面我們有提到,只要class被實例化(instantiated),當下就會立即執行建構子 而這裡要說明的解構子(destructor),也是在class被實例化時,會被執行
解構子,具有下列特性: - 一個class只能有一個解構子 - 會在class執行完成,準備結束時自動被調用 - 無法被呼叫 - 不接受修飾符及參數
解構子最常用在資源管理。 例如,class需要讀取資料庫內容、取得內容、最後要關閉資料庫連線,釋放記憶體。 這時,使用解構子,就能在class在一開始透過建構子與資料庫連線,取得內容,再透過解構子,在class結束前關閉連線。
在C#,定義解構子的方式:
解構子需與class名稱相同,並且前綴加上波浪符號 ~
class Myclass{
Myclass{
//一開始執行時,會自動呼叫建構子(constructor)
}
~Myclass(){
//執行結束前,自動呼叫解構子(destructor)
}
}