為何有些類中有Dispose方法?


在使用Stream對象,transactionScop,socket對象時,我們往往會發現在它的內部有一個Dispose()方法,它是干什么用的呢?這要從微軟的代碼托管開始說起,所謂托管,就是不需要程序員自己去干涉內部分配與銷毀,從對象的建立到銷毀的過程完全由.net來幫我們去實現。

.net為提供的類庫有兩種,即“托管類庫”和“非托管類庫”,像自定義的類,值類型等,它一般來說,執行的結果可以預知,這時.net幫助我們去管理對象;而如果你要實現,網絡上的傳遞,文件的傳遞,向服務器發包這些操作,都是系統未知的,即不知道什么時候能執行結束,這時,它們的對象釋放,則需要自己去實現,例如:

1 using System;
2 public void Dispose ()
3 {
4     this.Dispose (true);
5     GC.SuppressFinalize (this);
6 }

這是mvc構造中controller類的實現,它也是非托管的類庫,與此同時,還是stream。

事實上,今天通過一個小例子,讓我們知道了,.net中不是所有的對象都是可以先被定義的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM