2013-03-15 2 views
2

У меня есть функция VBA, которая возвращает словарь, а затем, если есть ошибка при построении Словаря, предпринимает определенное действие. Как так:Как установить объект на значение null, которое может быть логическим?

Public Sub takeAction(s as string) 

Dim dict as Dictionary 
Set dict=makeADictionary(s) 
If dictionaryIsOK(dict) Then 
doSomething 
Else 
doSomethingElse 
End If 

End Sub 

У меня возникли проблемы делая функцию dictionaryIsOK, потому что если я пытаюсь установки словаря на Nothing как способ указывает на нулевое значение, то кажется, что это значение не может быть проверена. Например:

Sub testNothing() 

Dim d As New Dictionary 

Set d = Nothing 
Debug.Print d Is Nothing 

End Sub 

Это печатает false, даже если я устанавливаю d к Nothing. Это похоже на все остальные типы объектов.

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

ответ

4
Dim d As New Dictionary 

В VBA/VB6, выше означает «Объявите переменную d, что волшебно всегда содержит экземпляр Dictionary. Если я когда-либо установить переменную Nothing, экземпляр нового Dictionary для меня в следующий раз, когда я получить доступ к переменной. "

Вы хотите удалить New:

Dim d As Dictionary 

И тогда вы можете проверить, если переменная Is Nothing или нет.

+1

Интересно. Я не знал этого о 'Dim x as new y'. – sigil

1

Необходимо создать экземпляр правильно. Эта работа:

Dim d As Dictionary 
Set d = New Dictionary 
Set d = Nothing 
Debug.Print d Is Nothing 
Смежные вопросы