我需要处置的形式后,我做了使用它
本文关键字: | 更新日期: 2023-09-27 18:10:56
我知道c#是一种自动垃圾收集语言,但是如果我处理一个表单,我会注意到不同吗?例如:
SettingsDialog dialog;
private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
{
dialog = new SettingsDialog();
dialog.ShowDialog();
dialog.FormClosed += new FormClosedEventHandler(dialog_FormClosed);
}
void dialog_FormClosed(object sender, FormClosedEventArgs e)
{
dialog.Dispose();
}
或者我应该把它保留为:
private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
{
SettingsDialog dialog = new SettingsDialog();
dialog.ShowDialog();
}
另外,如果SettingsDialog消耗大量内存怎么办?这会有什么不同吗?
Thanks in advance
直接使用:
using(SettingsDialog dialog = new SettingsDialog())
{
dialog.ShowDialog();
}
这将自动处置dialog
。
经验法则是始终实现IDisposable
接口的类型的Dispose()
实例。以保护资源的方式做到这一点的最简单方法是按照peter的回答使用using
语句。
等待终结器,虽然在很多情况下不是有害的,但在某些情况下会让你痛苦,因为你不知道它何时会发生(不确定性)。