如果我创建一个 Stream 对象来打开带有 OpenFileDialog
的文本文件,我应该在什么范围内关闭它?我在同一范围内声明了它,还是在其中一个if
内(在它正确打开的情况下关闭它)?
我把代码留在这里,这样你就可以告诉我...
Stream arch_Usuarios;
OpenFileDialog openFileDialog_arch_Usuarios = new OpenFileDialog();
if (openFileDialog_arch_Usuarios.ShowDialog() == DialogResult.OK)
{
if ((arch_Usuarios = openFileDialog_arch_Usuarios.OpenFile()) != null)
{
...
}
}
问候。
如果您将这些资源放在 using
语句中,则不必担心。 无论代码如何退出,当这些对象超出范围时,它们都会自动清理,这意味着即使在引发异常的情况下也是如此。
using(OpenFileDialog openFileDialog_arch_Usuarios = new OpenFileDialog())
{
if (openFileDialog_arch_Usuarios.ShowDialog() == DialogResult.OK)
{
using(Stream arch_Usuarios = openFileDialog_arch_Usuarios.OpenFile())
{
...
}
}
}
这是我对using
陈述的一个烦恼。 你最终会得到可笑的缩进代码。 小抱怨,但仍然让我烦恼。