为什么dispose方法不适用于c#中的字符串对象? 我们知道Dispose()是处理对象的方法。但为什么它不允许字符串对象或整数对象?
已编辑:托管对象的含义是什么?请指导我。
答案 0 :(得分:10)
不,Dispose是处理非GC管理的资源的方法。 String只是一个常规的托管对象,因此可以通过垃圾回收自动回收。
答案 1 :(得分:2)
Dispose是释放所有外部资源,string和int是简单数据类型,没有外部资源。
答案 2 :(得分:0)
处理对象不是您想要做的事情,而是您必须要做的事情。内存通常由垃圾收集器管理,它可以释放未使用的内存。未使用意味着您的应用程序中没有任何指向该对象的引用。
有些资源不能(或应该)由垃圾收集器管理。它们被称为“非托管资源”。例如:磁盘上的文件或与数据库的连接。它们被明确地打开和关闭。
Dispose是释放此资源的常用方法。 using
关键字非常有用。
如果你必须处理字符串和整数,你的代码将变得非常非常复杂。
答案 3 :(得分:0)
对于将“钩子”放入其他对象(例如事件处理程序)的对象,也需要使用Dispose。例如,如果某个对象订阅了另一个对象的更改通知,则需要让该另一个对象知道它何时不再发送此类通知。