42

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

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

      ms.Close(); 
    }
4

2 に答える 2

67

いいえ、ちがいます。

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

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

MSDNから:

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

于 2012-08-15T11:13:13.833 に答える
8

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

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

using (MemoryStream ms = new MemoryStream(byteArray)) 
{  
    // stuff 
}
于 2012-08-15T11:13:02.020 に答える