我打算使用共享变量来实现日志记录工具。看看下面的代码:
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 部分)我意识到这是一个简单的问题。
有没有更好的方法来实现日志记录机制?(第一季度第 2 部分)。日志记录机制写入错误和日志条目。
更新我想我在这里找到了答案:http: //msdn.microsoft.com/en-us/library/z2cty7t8.aspx。“静态变量继续存在并保留其最新值。下次您的代码调用该过程时,该变量不会重新初始化,它仍然保留您分配给它的最新值。静态变量继续存在定义它的类或模块的生命周期。”
我不相信这是创建日志记录工具的最佳方式。因此,我的问题的第 2 部分仍然是开放的。