C# - 流是否应始终关闭,即使它们未正确打开?



如果我创建一个 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陈述的一个烦恼。 你最终会得到可笑的缩进代码。 小抱怨,但仍然让我烦恼。

相关内容

  • 没有找到相关文章

最新更新