Подтвердить что ты не робот

Как проверить, нет ли объекта в VB6?

В моем приложении VB6 у меня есть массив объявленных объектов, таким образом...

Dim MyArray() as MyClass

Этот массив заполняется, когда обработка продолжается

Set MyArray(element) = passed_object

и поскольку элементы больше не нужны,

Set MyArray(otherelement) = Nothing

При использовании массива я хочу использовать цикл, подобный

For i = 1 To Ubound(MyArray)
    If MyArray(i) <> Nothing Then    ' Doesn't compile
        ...do something...
    End If
Next i

Но я не могу получить ничего похожего на компиляцию. Я также пробовал

If MyArray(i) Is Not Nothing Then

Должен ли я сделать это, и если да, то какой тест я должен здесь внести?

4b9b3361

Ответ 1

If Not MyArray(i) Is Nothing Then

Ответ 2

If Not MyArray(i) Is Nothing Then

Ответ 3

В дополнение к другим ответам (Ничто не используется в качестве оператора) существует также функция:

IsNothing(<object here>)

например.

if IsNothing(MyArray(i)) = false then

EDIT: MSDN бесполезно заявляет, что это существует в VBA и VB6, но, по-видимому, он не существует в VB6 в соответствии с комментариями ниже

Ответ 4

Вместо

IsNothing(<object here>)

это должно работать в VB6:

<object here> Is Nothing

Ответ 5

    Private Function IsNothing(objParm As Object) As Boolean
        IsNothing = IIf(objParm Is Nothing, True, False)
    End Function