web-dev-qa-db-ja.com

UsingステートメントのMemoryStream-close()を呼び出す必要がありますか

Usingステートメントでメモリストリームを使用する場合、closeを呼び出す必要がありますか?たとえば、ms.Close()はここで必要ですか?

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

      ms.Close(); 
    }
34
AJM

いいえ、ちがいます。

usingは、 Dispose() が呼び出されることを保証し、これはClose()メソッドを呼び出します。

usingステートメントによってすべての種類のストリームが閉じられていると想定できます。

[〜#〜] msdn [〜#〜] から:

StreamWriterなど、アンマネージリソースにアクセスするオブジェクトを使用する場合、usingステートメントを使用してインスタンスを作成することをお勧めします。 usingステートメントは、ストリームを自動的に閉じ、使用しているコードが完了するとオブジェクトに対してDisposeを呼び出します

55
sloth

Usingステートメントでメモリストリームを使用する場合、closeを呼び出す必要がありますか?

いいえ、必要ありません。自動的に呼び出される.Dispose()メソッドによって呼び出されます:

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