Проблема в том, что вы использовали неверное имя переменной в функции getInformation
.
Измените код так, чтобы он выглядел следующим образом:
Public Function GetInformation(jsonString as string) as string
Dim jsonObj As JObject
jsonObj = GetQueryObject(jsonString) // Change the name of this variable
// to match the declaration above it.
'Operate on object here.
End Function
Или, проще, объявите и инициализируйте переменную в одной строке:
Public Function GetInformation(jsonString as string) as string
Dim jsonObj As JObject = GetQueryObject(jsonString)
'Operate on object here.
End Function
Если бы вы компилировали свой код с Option Explicit
и Option Strict
, которые оба включили на , компилятор мог бы решить эту проблему для вас. Измените эти настройки в свойствах вашего проекта. НИКОГДА записать код в VB.NET с выключенным Option Explicit
. Случаются неожиданные вещи.
Что происходит, так это то, что VB.NET позволяет вам использовать переменную jsonObject
, даже не объявляя ее . Компилятор просто автоматически инициализирует его на Nothing
за сценой, что является значением по умолчанию. Это достаточно простая ошибка, так как это имя переменной в методе other . Но он не работает должным образом, потому что это не имя переменной в этом методе. Пока у вас отключено Option Explicit
, VB.NET не предупреждает вас и блаженно компилирует неправильный код.
(Обратите внимание, что я также следую рекомендованному соглашению о кодировании .NET CamelCasing для всех имен методов. Это означает, что они должны начинаться с заглавной буквы, а не строчной буквы. Только локальные переменные и параметры должны быть в pascalCased (начальная строчная буква).)