09/03/10 23:39:55
>>682
>そこで安全弁として、まともなクラス(FCLなど)では、
>Finalize経由でもDispose(bool disposing)を呼び出してリソースの解放が行われるようになっている。
>そういうクラスでは別に明示的にDispose()を絶対に呼び出さなきゃいけないわけではない。
こういうケースもあるから一概にそうとも言えないと思うがな。
StreamWriterのFlush/Close/Disposeを呼ばない場合
書き込みキャッシュの内容がフラッシュされないので内容がロストする。
ファイルは確かにクローズされるんだけど。
もちろんStreamWriterにはDispose(bool disposing)があるぜ。
URLリンク(msdn.microsoft.com)
static class Program
{
static void Main(string[] args)
{
var sw = new StreamWriter(@"c:\test.txt");
sw.Write("A");
}
}
Disposeに関してはもはやアンマネージリソースかどうかに拘っても意味がない気がする。
アンマネージリソースが解放されずに残るわけじゃないとはいえ
このケースでDisposeを呼ばなくて良いと言うのは無理がありすぎる。