訪問して頂きありがとうございます。まさふくろーです。
この記事では、UsingステートメントでDisposeメソッドの呼び出しを自動化する方法をご紹介します。
目次
UsingステートメントでDisposeメソッドの呼び出しを自動化する
Using 変数名 As New 使用するクラス
処理
End Using
サンプルプログラム

名前空間のインポート
|
1 2 |
Imports System.IO Imports System.Text |
| 1 | StreamReaderクラスを使うため、System.IO名前空間をインポート。 |
| 2 | Encodingクラスを使うため、System.Text名前空間をインポート。 |
Try...Catch...Finallyステートメントを使用する
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim sr As StreamReader = Nothing Dim FilePath As String = "C:\sample\sample.txt" Try sr = New StreamReader(FilePath, Encoding.GetEncoding("Shift_JIS")) Label1.Text = "C:\sample\sample.txtファイルを読み取り用に開きました。" Catch ex As Exception Label1.Text = Err.Description Finally If sr IsNot Nothing Then sr.Dispose() End If End Try End Sub End Class |
| 2 | 「実行」ボタンクリック時に以下処理を行う。 |
| 4 | StreamReader型の変数「sr」の初期化。 |
| 5 | ファイルパスを、文字列型の変数「FilePath」に代入。 |
| 9 | シフトJISのテキストファイルを開く処理を実行する。 |
| 11 | 正常に処理が実行された場合、正常終了のメッセージをラベルに表示する。 |
| 13 | 処理の実行中にエラーが発生した場合、 |
| 15 | エラー内容をラベルに表示する。 |
| 17 | エラー発生の有無に関わらずに、以下処理を必ず行う。 |
| 19 | StreamReaderクラスのリソースが開放されていない(テキストファイルが閉じられていない)場合、 |
| 20 | リソースの開放を行う。(テキストファイルを閉じる。) |
Usingステートメントを使用する
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FilePath As String = "C:\sample\sample.txt" Try Using sr As New StreamReader(FilePath, Encoding.GetEncoding("Shift_JIS")) End Using Label1.Text = "C:\sample\sample.txtファイルを読み取り用に開きました。" Catch ex As Exception Label1.Text = Err.Description End Try End Sub End Class |
| 2 | 「実行」ボタンクリック時に以下処理を行う。 |
| 4 | ファイルパスを、文字列型の変数「FilePath」に代入。 |
| 8 | シフトJISのテキストファイルを開く処理を実行する。 |
| 12 | 正常に処理が実行された場合、正常終了のメッセージをラベルに表示する。 |
| 14 | 処理の実行中にエラーが発生した場合、 |
| 16 | エラー内容をラベルに表示する。 |
関連記事
最後まで読んでいただき、ありがとうございました!
本のまとめ関連記事はこちら

