Usingってなんだ?

そーいえば、
今日ツール作成中にファイルの読込が分からなかったのでヘルプで探したら*1
ご丁寧にサンプルコードまで載っていた*2
その中でUsing インスタンス 〜 End Usingというコードを見つけた。
なんじゃこれ?と思って
ヘルプしたけど英語の???なページしかなかったので早速家で調べてみた。

Usingステートメントです。
Usingを用いれば、オブジェクトの破棄を行ってくれます。
VB2005から利用が可能です。

try〜Finallyでクローズ処理などをする必要がありません。
コーディングがスッキリとした形になります。


Dim str As String

Try
'ファイル書き込み
Using writerWriter As New StreamWriter("C:\log.txt", True)
writerWriter.WriteLine("test")
End Using

'ファイル読み込み
Using streamReader As New StreamReader("C:\log.txt")
str = streamReader.ReadToEnd()
Console.WriteLine(str)
End Using

Catch ex As Exception
Console.WriteLine(ex.Message)
End Try

http://www.cocoaliz.com/vb.net/index/22/

次に Stream 系などに多い、Close メソッド、Dispose メソッドの双方が実装されているものの、Dispose メソッドが Protected などで隠蔽化されている場合の例です。VB2003 の場合は Using ステートメントがサポートされていないため、以下のように System.IDisposable インターフェイスから隠蔽化された Dispose メソッドを呼び出します...

http://jeanne.wankuma.com/tips/vb.net/programming/dispose.html

これを使わない場合は、閉じる以外に捨てなきゃいけないようです。
・・。
普通に中でCloseしてたヨ。それもDisposeしてないし。


う〜ん。VBは文法を書いて覚えたタイプだから
こういう仕様的なことを言われると厳しいな。
勉強不足だと痛感します。

*1:業務でVB使ってるけど、考えてみればファイルの読書きなんてしたことがなかったことに気づいた

*2:ご親切なとこもあれば、これだけカヨ!と言いたくなるページもあったり・・