天天看點

《硬道理》系列~第二回 構造函數與析造函數,你始,我終!

首先說明一點構造函數與析造函數是指類中的,是以,下面所說的都是針對于類(class)對象的。

構造函數(構造方法)美國人叫它Contructor,它類對象進行new操作時,會根據你的形式參數去執行指定的構造方法。

析構函數(析構方法)美國人叫它Destructors,它是指所在的類失去了作用時,要執行的方法,一般用來清理一些東西,釋放它所占用的記憶體(占用的記憶體是在new操作後被.net配置設定的)。

1 構造函數的執行:總會先執行基類的構造函數,然後才會執行本類自己的架構函數

2 析構函數的執行:總會先執行自己的析構函數(釋放自己類的資源),然後才會執行它基類的析構函數

下面看一下代碼:

看一下它執行的結果

《硬道理》系列~第二回 構造函數與析造函數,你始,我終!

一般地,我們在項目中使用非托管資源時,應該去重寫一下類的析構函數,以便手動的釋放資源及關閉不需要的資源。

其實在.net自己的構架中,有很多非托管資源(.net運作時無法把控的資源,它可能與本地網絡,本地計算機,網絡伺服器,資料伺服器,網絡拓撲結構

有關),它們是檔案對象(File),資料庫對象(DbConnection),網絡套接字對象(Socket)等等。