2010-08-31 71 views

回答

9

不,Dispose是处理不由GC管理的资源的方法。字符串只是一个常规的管理对象,因此会被垃圾回收自动回收。

+0

托管对象的含义是什么?请指导我。 – 2010-08-31 06:12:29

+0

@Latit:托管对象是引用类型的实例。它是通过实例化类型来分配的,并且在某个点垃圾收集期间相关内存会自动回收。只要对象不使用任何非托管资源(如操作系统句柄),就没有理由甚至无法实现IDisposable接口。 – 2010-08-31 09:08:00

2

Dispose是释放所有的外部资源,string和int是简单的数据类型,没有外部资源。

0

处理对象不是你想要做的事情,而是你必须做的事情。内存通常由垃圾回收器进行管理,从而释放未使用的内存。未使用意味着您的应用程序中没有任何指向该对象的引用。

有垃圾收集器无法(或应该)管理的资源。他们被称为“非托管资源”。例如:磁盘上的文件或与数据库的连接。他们明确地打开和关闭。

Dispose是释放此资源的常用方法。 using关键字对此很有帮助。

如果你不得不处置字符串和整数,你的代码会变得非常非常复杂。

0

对于将“挂钩”放入其他对象(例如事件处理程序)的对象,Dispose也是必需的。例如,如果某个对象订阅了更改另一个对象的通知,则需要让该其他对象知道何时不应再发送此类通知。

相关问题