![]() |
1
6
将值设置为空通常是不相关的。它很少有用。有时是有害的。 让我们首先考虑最简单的情况:
问很多人什么时候
在概念上这是正确的,因为我们可以添加处理
事实上,很可能
实际上,如果对对象调用的最后几个方法实际上没有使用
现在,考虑到这一点,我们可以看到,如果我们在变量超出范围之前将null赋给变量,它实际上不会产生看起来微不足道的差异。
但是,将引用设置为空可能会有好处。考虑:
想想看,这一次
现在,有一些重要的注意事项:
因此,将null赋给成员变量的主要原因,仅仅是因为null已经成为最合适的值。将空值分配给不再使用的成员通常不是为了尽快释放其内存,而是因为它不再适合使用,并且当它为空值时,这将变得不可能——并且清楚地指示给其他代码。 如果引用的生存期比方法长(因此放入成员变量) 和 和 消耗了大量的内存,那么分配空就有可能开始有意义了。在这种组合出现的极少数情况下,我们可能希望将其赋给null,以指示类不再需要使用它,因此我们仍然不打算赋给null 目的是 |
![]() |
2
2
垃圾收集不清除空对象。如果您将引用设置为
GC仍然会选择仅在不再引用它时才释放它,但是如果您显示该窗口,您将确保它仍然被引用到某个地方。。 编辑 :如注释中所述,引用计数可能与.NET虚拟机不同(抱歉,我不使用M$platform),但原理不变。因为你的窗口是可见的,所以无论如何也不会被GCed。 |
![]() |
3
0
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |