0

我正在使用 For Each 循环来遍历 VB6 中的 Variant 数组。有一次,我想将循环的元素(elem)(一个变体)转换为节点。

Dim elem as Variant

For Each elem In ndArray
    Dim nodle As Node
    nodle = CType(elem , Node)
Next

这不是整个循环,但它让您了解我正在尝试做什么。当我运行此代码时,我收到一条错误消息“未定义变量”,它指向 CType 方法中的“节点”。这不是一个变量,它是一个类型,并且该方法应该知道这一点,因为它需要一个类型。

我尝试跳过 CType 方法,只制作 nodle = elem,但我收到一条错误消息,提示“对象变量或未定义块变量”。我在表达式前面添加了 Set 关键字,错误更改为“需要对象”

当我调试并查看 elem 变量时,它似乎包含一个有效的 Node 值。

有人知道这里发生了什么吗?这种转换甚至可能吗?

任何建议将不胜感激。

4

1 回答 1

0

尝试添加Set?

Set nodle = CType(elem , Node) 

Set如果Node是对象类型并且nodle将包含对象引用,则它是必需的。如果省略Set,编译器会假定您要更改Node对象的默认属性。

于 2013-07-10T11:05:17.127 回答