TIL

Today I Learned. 知ったこと、学んだことを書いていく

Usingステートメント - VB.net

Using ステートメントでは、通常、何らかのオブジェクトを作成し(New)、その参照を変数に格納する。そして、UsingからEnd Usingまでの範囲を抜け出す際には、その変数が参照しているオブジェクトのDisposeメソッドが確実に呼び出されるという仕組みである(「Dispose」は「処分する」という意味)。

例えば、ファイルを操作しているときに例外が発生してしまったとする。しかし、Usingステートメントを使うことで確実にファイルなどが閉じられることが保証される。

○Usingを使わない場合

Dim writer As New System.IO.StreamWriter("c:\sample.txt")
Try
    writer.WriteLine("(テキスト・ファイルの内容)")
Finally
    writer.Close()
End Try
writer.WriteLine("出力できるはずもない無意味な行")

7行目で実行エラーになる

○Usingを使う場合

Using writer2 = New System.IO.StreamWriter("c:\sample.txt")
    writer2.WriteLine("(テキスト・ファイルの内容)")
End Using
writer2.WriteLine("出力できるはずもない無意味な行")

4行目でコンパイルエラーになる


参考文献

Usingステートメントで簡単、確実にファイルをクローズ - @IT