Visual Studio 2005 で C♯ライクな Visual Basic のWindowsApplication プロジェクトのテンプレートを作ってみようと試みたけど。に対してコメントを頂きました。個人的には興味あるところなのでエントリにしてみます。
~ これまでのあらすじ。~
- 件のエントリでとりこびとが自前の プロジェクトテンプレートに使用する予定の Program クラスのコードを以下のように提示した。
Public Class Program
<STAThread()> _
Public Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1)
End Sub
End Class
- 中さんより、以下のほうがよさげだとアドバイスを受ける。
Public Class Program
<STAThread()> _
Public Shared Sub Main()
Application.EnableVisualStyles()
Using frm As New Form1
Application.Run(frm)
End Using
End Sub
End Class
- そうですねぇ♪ってことで本文を修正する。
- 通りすがりさんより「私としては using しない方(最初のほう)が好きです。」といった内容のコメントを頂く。
- それもそうだなぁ、と思う。
- C♯のやつも Using はしていない事実。
- 通りすがりさんのコメント
厳密に考えれば、Application.Run の中の new ApplicationContext でエラーが発生すれば、フォームのインスタンスは Dispose されない事になりますが、たぶんそれは C# のテンプレートを作成した人も承知の上だと思います。
テンプレートとしては、とってもとっても小さな確率よりシンプルさを優先させたのではないかなと考えています。
これの前半部分で、'テンプレートだからこそちゃんと(Using)しておいてほしい' という気持ち、後半部分で、'落としどころってここなのかな。' という気持ちが。←今ここ。
実際には ApplicationContext を Run メソッドのパラメータにするなどいろいろありますが、どんな感じなんでしょうねぇ。
さてさて・・・どっちにする?