相关疑难解决方法(0)

我应该为流对象调用Close()或Dispose()吗?

类如Stream,StreamReader,StreamWriter等工具IDisposable界面.这意味着,我们可以Dispose()在这些类的对象上调用方法.他们还定义了一个public名为的方法Close().现在让我感到困惑的是,一旦我完成了对象,我该怎么称呼?如果我同时打电话怎么办?

我目前的代码是这样的:

using (Stream responseStream = response.GetResponseStream())
{
   using (StreamReader reader = new StreamReader(responseStream))
   {
      using (StreamWriter writer = new StreamWriter(filename))
      {
         int chunkSize = 1024;
         while (!reader.EndOfStream)
         {
            char[] buffer = new char[chunkSize];
            int count = reader.Read(buffer, 0, chunkSize);
            if (count != 0)
            {
               writer.Write(buffer, 0, count);
            }
         }
         writer.Close();
      }
      reader.Close();
   }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我编写了using()构造,自动调用Dispose()每个对象的方法.但我也称之为Close()方法.这样对吗?

请告诉我使用流对象时的最佳做法.:-)

MSDN示例不使用using()构造,并且调用 …

c# idisposable stream streamwriter streamreader

139
推荐指数
6
解决办法
12万
查看次数

标签 统计

c# ×1

idisposable ×1

stream ×1

streamreader ×1

streamwriter ×1