Using语句中的MemoryStream - 我是否需要调用close()

时间:2012-08-15 11:12:10

标签: c# using memorystream using-statement

在using语句中使用内存流时,是否需要调用close?例如,这里需要ms.Close()吗?

  using (MemoryStream ms = new MemoryStream(byteArray)) 
    {  
      // stuff 

      ms.Close(); 
    }

2 个答案:

答案 0 :(得分:55)

不,不是。

using确保调用Dispose(),然后调用Close()方法。

您可以假设所有类型的流都被using语句关闭。

来自MSDN

  

当您使用访问非托管资源的对象(例如StreamWriter)时,一个好的做法是使用using语句创建实例。 using语句会自动关闭流,并在使用它的代码完成后调用对象上的Dispose

答案 1 :(得分:7)

  

在using语句中使用内存流时,是否需要调用close?

不,你不需要。它将由.Dispose()方法调用,该方法自动调用:

using (MemoryStream ms = new MemoryStream(byteArray)) 
{  
    // stuff 
}