1

.Net MemoryStream オブジェクト インスタンスの場合、使用後に明示的に閉じる必要がありますか? それとも閉める必要ない?ベストプラクティスはどれですか?

VSTS2008 + .Net 3.5 + C# を使用しています。

4

2 に答える 2

9

さらに良いのは、使用することですUsing

using (MemoryStream ms = /*get it using your favorite ctor*/)
{
    // use it here

    // and now flush and copy to a file stream (for example)
    ws.Flush();
    byte[] buffer = ws.ToArray();
    using (Stream stream = new FileStream("fileName", FileMode.Create))
        stream.Write(buffer, 0, buffer.Length);
}

少し思い出してください - 最後に別のストリームにすべてを書き込む予定がある場合は、忘れないでくださいFlush()(そして便座を上げたままにしないでください)。

ミリ秒前後の StreamWriter を使用して、テキスト データをメモリに書き込み、最後にすべてを一度にディスクに書き込みます。(必要に応じて、ここの例をこのケースに変更することもできます)

于 2009-08-25T04:36:18.113 に答える
2

使い終わったら閉じる必要があります。ベスト プラクティスは、try-catch-finally ブロックの finally セクションでストリームを閉じることです。ここで詳細情報を入手できます:

http://msdn.microsoft.com/en-us/library/system.io.memorystream.aspx

于 2009-08-25T04:31:36.517 に答える