如果我使用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)
{
...
}
}
问候。
答案 0 :(得分:6)
如果您将这些资源放在using
语句中,则无需担心。这些对象在超出范围时会自动清除,无论代码如何退出,即使抛出异常也是如此。
using(OpenFileDialog openFileDialog_arch_Usuarios = new OpenFileDialog())
{
if (openFileDialog_arch_Usuarios.ShowDialog() == DialogResult.OK)
{
using(Stream arch_Usuarios = openFileDialog_arch_Usuarios.OpenFile())
{
...
}
}
}
这是我对using
陈述的一个宠儿。你结束了可笑的缩进代码。轻微的抱怨,但仍然让我很烦。