共有変数を使用してロギング機能を実装することを計画しています。以下のコードをご覧ください。
Imports System.IO
Public Class TestClass
Public Shared objError As New StreamWriter("C:\Test.txt")
End Class
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
TestClass.objError.WriteLine("Error 1")
TestClass.objError.WriteLine("Error 2")
TestClass.objError.WriteLine("Error 3")
'TestClass.objError.Close()
TestClass.objError.WriteLine("Error 4")
TestClass.objError = Nothing
Catch ex As Exception
End Try
End Sub
この共有変数がどのように作成および破棄されるのかわかりません(form_loadの前に作成され、form_unloadによって破棄されると思います)。また、静的変数への参照をNothingに設定できる理由もわかりません。確かに、変数はプログラムが終了するまで存在する必要がありますか?(Q1、パート1)これは簡単な質問だと思います。
ロギングメカニズムを実装するためのより良い方法はありますか?(Q1パート2)。ロギングメカニズムは、エラーとログエントリを書き込みます。
更新私はここで私の答えを見つけたと思います:http://msdn.microsoft.com/en-us/library/z2cty7t8.aspx。「静的変数は引き続き存在し、最新の値を保持します。次にコードがプロシージャを呼び出すとき、変数は再初期化されず、割り当てられた最新の値を保持します。静的変数は、それが定義されているクラスまたはモジュールの存続期間。」
これがロギング機能を作成するための最良の方法であると私は確信していません。したがって、私の質問のパート2はまだ開いています。