2013-11-19 2 views
1

код моей 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.NullReferenceException. Исключение происходит на DisaOJLibrary.log.Clear() этой строке.

Что я делаю неправильно, как я могу получить доступ к переменной из функции, объявленной в классе?

ответ

1

Просто объявление журнала переменных как Shared не означает, что кто-то создает и инициализирует экземпляр объекта для вас. Вам нужно добавить

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 
+0

Спасибо, я не понял, что это было так легко. Я обвинял в этом классы. – Disa

Смежные вопросы