为什么dispose方法不适用于字符串对象?

时间:2010-08-31 05:50:46

标签: .net dispose

为什么dispose方法不适用于c#中的字符串对象? 我们知道Dispose()是处理对象的方法。但为什么它不允许字符串对象或整数对象?

已编辑:托管对象的含义是什么?请指导我。

4 个答案:

答案 0 :(得分:10)

不,Dispose是处理非GC管理的资源的方法。 String只是一个常规的托管对象,因此可以通过垃圾回收自动回收。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

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

Dispose是释放此资源的常用方法。 using关键字非常有用。

如果你必须处理字符串和整数,你的代码将变得非常非常复杂。

答案 3 :(得分:0)

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