简单属性赋值中的“表达式太复杂”错误

时间:2014-12-09 17:38:15

标签: vb6 runtime-error

我(相当规则地)得到一个“错误16:表达式过于复杂”的运行时错误,只是对类中属性的简单赋值。

public property PropertyName() as double
    PropertyName = mvarPropertyName
end property

调试窗口指向上面代码中的分配行上的崩溃。 在这里和其他地方进行的一些初步阅读表明它与称之为财产的线路有关。但是,现在看起来像这样:

variableName = ObjectName.PropertyName

所有算术都是用variableName完成的。 更奇怪的是,如果我只是点击调试,然后恢复/ F5 immediatley,一切都很好。 尝试使用错误处理代码来执行此操作似乎并没有奏效。

任何想法导致此错误的原因是什么?

2 个答案:

答案 0 :(得分:3)

停止使用Not (Not MyArray)来测试未初始化的数组。这使用了编译器中的一个错误,该错误具有破坏运行时稳定性的已知副作用,导致表达式过于复杂"在随机的地方。

VB6 - Returning/Detecting Empty Arrays是测试空数据和未初始化数组的不同方法的相当完整的线程。

答案 1 :(得分:0)

字符串表达式太复杂了。未分配给变量的字符串(例如函数返回的字符串)在字符串表达式求值期间分配给临时位置。拥有大量这些字符串可能会导致此错误。尝试将这些字符串分配给变量并使用表达式中的变量。