我需要处置的形式后,我做了使用它

本文关键字: | 更新日期: 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语句。

等待终结器,虽然在很多情况下不是有害的,但在某些情况下会让你痛苦,因为你不知道它何时会发生(不确定性)。

相关文章:
  • 没有找到相关文章