C#やVB.NETにはUsingステートメントというのがあります。
これはオブジェクトをnewしたとき、Usingで定義したスコープを抜けると自動的に破棄(Dispose)してくれます。
でもこれ、無駄にスコープが作られちゃうので私はあまり使いません。(積極的に使ってる人いるんだろうか?)
例えばファイルを3つ開きたいとき、
Sub OpenFiles
Using file = new FileStream(“FILE1.TXT”)
Using file = new FileStream(“FILE2.TXT”)
Using file = new FileStream(“FILE3.TXT”)
・・・
End Using
End Using
End Using
End Sub
スコープ(というかブロック)が3つもネストしてしまい、すごくムダです。
かといってTry~Finallyで明示的にDisposeするのも野暮ったいし。
親スコープ内を抜けた時にDisposeする言語仕様だったらすごくスッキリするんですけどね。
ちなみにC++ではauto_ptr使えばこれが出来ます。
Sub OpenFiles
Using file = new FileStream(“FILE1.TXT”)
Using file = new FileStream(“FILE2.TXT”)
Using file = new FileStream(“FILE3.TXT”)
End Sub
でもこれ、無駄にスコープが作られちゃうので私はあまり使いません。(積極的に使ってる人いるんだろうか?)
例えばファイルを3つ開きたいとき、
Sub OpenFiles
Using file = new FileStream(“FILE1.TXT”)
Using file = new FileStream(“FILE2.TXT”)
Using file = new FileStream(“FILE3.TXT”)
・・・
End Using
End Using
End Using
End Sub
スコープ(というかブロック)が3つもネストしてしまい、すごくムダです。
かといってTry~Finallyで明示的にDisposeするのも野暮ったいし。
親スコープ内を抜けた時にDisposeする言語仕様だったらすごくスッキリするんですけどね。
ちなみにC++ではauto_ptr使えばこれが出来ます。
Sub OpenFiles
Using file = new FileStream(“FILE1.TXT”)
Using file = new FileStream(“FILE2.TXT”)
Using file = new FileStream(“FILE3.TXT”)
End Sub
0 件のコメント:
コメントを投稿