Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
StreamWriter クラスの Close 呼び出し方
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30314#CommentId83172
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
ポムNNN
 (社会人)
投稿日時
2018/2/4 23:16:46
開発環境 Visual Studio 2015, Windows7(64bit)
StreamWriter クラスの Close メソッドの部分で下記プログラムの Write1(), Write2() の2つのうちどちらがいいいのか迷っています。
Write1() はStreamWriterクラスを使用する直前でインスタンス化するプログラムです。
Write2() はStreamWriterクラスを最初にインスタンス化するプログラムです。
個人的には Write1() がいいかと思っています。
理由としては、第46回クラス作成の中で
”クラスの生成というのは効率が悪い作業の1つなのです。プログラム中ではできるだけクラスを生成する回数を減らすようにするように努力してください。”
と記載があるからです。今回の場合はインスタンス化の前段階で例外が発生し、インスタンス化が無駄だと思ったからです。
どなたかアドバイス頂けませんでしょうか?よろしくお願いします。
Private Sub Write1()
Dim i As Integer = 0
Dim n As Integer = 0
Dim j As Integer
Dim sw As StreamWriter = Nothing
Dim FilePath = "" 'ファイルのフルパスを入れる
Try
j = i / n
sw = New StreamWriter(FilePath, True, System.Text.Encoding.GetEncoding("shift-jis"))
sw.WriteLine(j)
Catch ex As Exception
MsgBox(ex.Message)
Finally
If Not sw Is Nothing Then
sw.Close()
End If
End Try
End Sub
///////////////////////////////////////////////////////////////
Private Sub Write2()
Dim i As Integer = 0
Dim n As Integer = 0
Dim j As Integer
Dim FilePath = "" 'ファイルのフルパスを入れる
Dim sw As StreamWriter = New StreamWriter(FilePath, True, System.Text.Encoding.GetEncoding("shift-jis"))
Try
j = i / n
sw.WriteLine(j)
Catch ex As Exception
MsgBox(ex.Message)
Finally
sw.Close()
End Try
End Sub