从函数内部访问共享变量

时间:2013-11-19 23:10:01

标签: vb.net dll

我的DLL代码:

Public Class DisaOJLibrary


    Public Shared log As StringBuilder

    Public Shared Function Test(PARAMS)
        DisaOJLibrary.log.Clear()
        DisaOJLibrary.log.Append("")

    The rest of the code....

当我从我的应用程序调用函数Test()时,它给出: 但我得到System.NullReferenceExceptionDisaOJLibrary.log.Clear()此行发生异常。

我做错了什么,如何从类中声明的函数中访问变量?

1 个答案:

答案 0 :(得分:1)

简单地将变量日志声明为“共享”并不意味着有人为您创建并初始化对象实例。你需要添加

Public Shared Function Test(PARAMS)
    if DisaOJLibrary.log Is Nothing Then
       DisaOJLibrary.log = new StringBuilder()
    End if
    DisaOJLibrary.log.Clear()
    DisaOJLibrary.log.Append("")
    ....

或直接在类级别的声明中初始化

Public Shared log As StringBuilder = new StringBuilder