任何人都可以告诉我
null
分配给变量有什么好处?null
是什么意思?提前致谢
答案 0 :(得分:2)
将null
(C#)或Nothing
(VB)分配给变量时,会删除对先前分配的对象的引用。一旦没有对象的引用,它就有资格进行垃圾收集,即将占用的内存返回给系统。
与1.相同。处置对象会释放对象持有的任何托管或非托管资源。该对象占用的内存不被视为用于这些目的的资源。
除此之外还有更多内容,但GC的目的是将未使用的内存返回系统进行重新分配。如果没有对该对象的托管引用,它只能回收对象占用的内存,这就是为什么如果您不再使用该对象,则将长寿命变量置零很重要。局部变量很少被认为是长期存在的,因为一旦方法完成它就会失去范围。一个长期存在的变量的一个很好的例子是WinForms应用程序的启动形式中的一个字段,它几乎在应用程序的整个生命周期内保持不变。 如果对象已被丢弃,它也只能回收一次性对象占用的内存。这就是为什么在一个物体完成后如果它支持处置就丢弃它的重要性。如果你没有,那么当GC第一次尝试回收对象占用的内存时,它将无法进行回收。它必须首先完成对象的最终处理,然后再次尝试回收内存。