我知道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消耗大量的内存?这会有所作为吗?
在此先感谢
实现IDisposable的* anything *的* contract *指示Dispose *将被正确编写的代码中的“所有者”调用。 Dispose实现目前什么都不做都没关系。终结者可能会[最终]完成与Dispose相同的内容并不重要。不会根据需要调用Dispose(直接或间接)违反合同。 (这就是为什么添加或删除IDisposable接口是一个突破性改变。) – 2011-10-12 04:12:27