2011-04-15 55 views
0

我在閱讀有關msdn中的dispose方法文檔時遇到了這一行。註冊:.net中的管理對象和本地資源

here。在說明中給出了一行說明主要使用Dispose方法使用本機資源的託管對象和暴露給.NET Framework的COM對象。

任何人都可以解釋什麼是管理對象,它們在哪裏使用以及本地資源是什麼,以及一些示例。

在此先感謝

回答

1

當您編寫一個Win32應用程序時,您負責管理內存。如果你分配內存你負責釋放它,否則你的程序將有內存泄漏。

簡而言之,公共語言運行時(即運行.NET應用程序的「程序」)負責爲您管理內存。當你創建一個對象時:

var myInstance = new MyObject(); 

你不負責破壞這個對象以及它消耗的內存資源。當您在任何.NET程序(C#,F#,VB.NET ...)上創建類似上面的對象時,您正在創建一個受管對象

但是,您的對象,即使是託管對象,也可以直接操作內存並分配非託管資源。 C#有一個範圍叫做不安全允許低級別的內存操作。除此之外,您的程序可能與.NET以外的資源交互,如Windows註冊表或在程序執行期間創建和刪除臨時文件。你看? .NET CLR無法爲您管理這些資源。因此,當你的程序完成時,你負責處理。這就是爲什麼你應該實現IDisposable。

如果您想要示例,請查看哪些類可以實現IDisposable。 SqlConnection就是其中之一。有幾個。