在使用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中不是所有的對象都是可以先被定義的。