爲什麼dispose方法不適用於c#中的字符串對象?我們知道Dispose()是處理對象的方法。但爲什麼它不允許使用字符串對象或整數對象?爲什麼配置方法不適用於字符串對象?
編輯:託管對象的含義是什麼?請指導我。
爲什麼dispose方法不適用於c#中的字符串對象?我們知道Dispose()是處理對象的方法。但爲什麼它不允許使用字符串對象或整數對象?爲什麼配置方法不適用於字符串對象?
編輯:託管對象的含義是什麼?請指導我。
不,Dispose是處理不由GC管理的資源的方法。字符串只是一個常規的管理對象,因此會被垃圾回收自動回收。
Dispose是釋放所有的外部資源,string和int是簡單的數據類型,沒有外部資源。
處理對象不是你想要做的事情,而是你必須做的事情。內存通常由垃圾回收器進行管理,從而釋放未使用的內存。未使用意味着您的應用程序中沒有任何指向該對象的引用。
有垃圾收集器無法(或應該)管理的資源。他們被稱爲「非託管資源」。例如:磁盤上的文件或與數據庫的連接。他們明確地打開和關閉。
Dispose是釋放此資源的常用方法。 using
關鍵字對此很有幫助。
如果你不得不處置字符串和整數,你的代碼會變得非常非常複雜。
對於將「掛鉤」放入其他對象(例如事件處理程序)的對象,Dispose也是必需的。例如,如果某個對象訂閱了更改另一個對象的通知,則需要讓該其他對象知道何時不應再發送此類通知。
託管對象的含義是什麼?請指導我。 – 2010-08-31 06:12:29
@Latit:託管對象是引用類型的實例。它是通過實例化類型來分配的,並且在某個點垃圾收集期間相關內存會自動回收。只要對象不使用任何非託管資源(如操作系統句柄),就沒有理由甚至無法實現IDisposable接口。 – 2010-08-31 09:08:00