我正在学习C#,我看到的示例程序是这样的代码:
static CalibrationForm form = null;
还有这个
public static void HideCalibration()
{
form.Hide();
form.Dispose();
form = null;
}
为什么要将表单设置为 null 是否有任何特殊原因?
表单设置为null是什么意思?
最佳答案
在这个(IMO 糟糕的)示例中,form
是一个 static
字段,它包含对表单实例的引用,该实例将在应用程序的所有位置可用.问题是 Dispose()
不够 - 如果它被 static
引用,它就不能被垃圾回收> 字段,因为 static
字段不会超出范围。曾经。将字段设置为 null
允许收集实例。
另请注意,对表单的任何 引用都会使它保持事件状态 - 不仅仅是这个字段; 事件订阅是众所周知的人为保持事件的方式。
但要强调:这是一个可怕的例子。我不建议使用 static
字段中的表单进行编码。
关于c# - 为什么Form需要设置为null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21939310/