c#析構函式
1. 析構函式的定義與注意的問題
析構函式用於釋放被占用的系統資源。
析構函式的名字由符號「~」加類名組成。
使用析構函式時,應該注意下面的問題:
?只能在類中使用析構函式,不能在結構中使用析構函式。
?乙個類只能有乙個析構函式。
?不能繼承或過載析構函式。
?析構函式只能被自動呼叫。
?析構函式沒有任何修飾符、沒有任何引數、也不返回任何值。
2. 呼叫析構函式
?垃圾**器決定了析構函式的呼叫,我們無法控制何時呼叫析構函式。
?垃圾**器檢查是否存在應用程式不再使用的物件。如果垃圾**器認為某個物件符合析構,則呼叫析構函式(如果有)並**用來儲存此物件的記憶體。
?程式退出時會呼叫析構函式。
?我們可以通過呼叫collect強制進行垃圾**,但是請不要這樣做,因為這樣做可能導致效能問題。
二、建構函式與析構函式的區別
?建構函式和析構函式是在類中說明的兩種特殊的成員函式。
?建構函式是在建立物件時,使用給定的值將物件初始化。
?析構函式用於釋放乙個物件。在物件刪除前,使用析構函式做一些清理工作,它與建構函式的功能正好相反。
三、示例
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace test
}class second : first // second類從first類派生
}class third : second // third類從second類派生
}static void main(string args)}}
程式執行時,這三個類的析構函式將自動被呼叫,呼叫順序是按照從派生程度最大的(~third())到派生程度最小的(~first())次序呼叫的,和建構函式的呼叫順序正好相反。
執行結果:
~third()析構函式
~second()析構函式
~first()析構函式
C 基礎 析構函式
二,使用析構函式的有什麼用?一,程式設計師無法控制何時呼叫析構函式,因為這是由垃圾 器決定的。垃圾 器檢查是否存在應用程式不再使用的物件。如果垃圾 器認為某個物件符合析構,則呼叫析構函式 如果有 並 用來儲存此物件的記憶體。程式退出時也會呼叫析構函式。二,使用析構函式釋放資源 通常,與執行時不進行垃...
C 基礎 11 析構函式
一 析構函式 析構函式 destructor 用於析構類的例項。即在類的例項被銷毀之前,執行資源的清理或者釋放非託管資源。下面的 示例中宣告了乙個名為car的類,該類包含乙個名為 car的析構函式 1 class car2 7 析構函式的特徵如下 1.不能在結構中定義析構函式。只能對類使用析構函式。...
C 析構函式 虛析構函式
1.為什麼要定義虛析構函式?如果有乙個帶有虛函式功能的類,則它需要乙個虛析構函式,原因如下 1 如果乙個類有虛函式功能,它經常作為乙個基類使用 2 如果它是乙個基類,它的派生類經常使用new來分配 3 如果乙個派生類物件使用new來分配,並且通過乙個指向它的基類的指標來控制,那麼它經常通過乙個指向它...