相关疑难解决方法(0)

是否有比嵌套"使用"更好的确定性处置模式?

在C#中,如果我想确定性地清理非托管资源,我可以使用"using"关键字.但是对于多个依赖对象,这最终会进一步嵌套:

using (FileStream fs = new FileStream("c:\file.txt", FileMode.Open))
{
    using (BufferedStream bs = new BufferedStream(fs))
    {
        using (StreamReader sr = new StreamReader(bs))
        {
            // use sr, and have everything cleaned up when done.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在C++中,我习惯于使用析构函数来执行此操作:

{    
    FileStream fs("c:\file.txt", FileMode.Open);
    BufferedStream bs(fs);
    StreamReader sr(bs);
    // use sr, and have everything cleaned up when done.
}
Run Code Online (Sandbox Code Playgroud)

在C#中有更好的方法吗?还是我坚持多层次的嵌套?

c# c++ using raii

20
推荐指数
2
解决办法
2072
查看次数

标签 统计

c# ×1

c++ ×1

raii ×1

using ×1