【发布时间】:2019-08-23 10:51:11
【问题描述】:
我的任务是将旧的 VB6 代码迁移到 .NET 项目。一切顺利地将旧代码转换为现代 VB 方言,直到我遇到数组索引问题。旧的 VB 代码是假设所有数组都从索引 1 开始编写的,而 .NET 中的数组从 0 开始。
我应该如何处理?
重写所有 VB 代码以使位置假定从零开始的索引? (很多变化)
用零 (0) 填充数组的下限?
其他解决方案?
【问题讨论】:
-
您可以使用
Option Base声明将基数设置为1:https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/option-base-statement -
@DBro:这适用于 VB.NET 吗?
-
@Midas 不,它没有。
-
哦,该声明对 VB.NET 不再有效。我不知道...对不起虚假信息。在这种情况下,解决此问题的正确方法是将代码修复为使用基于 0 的索引。您有机会引入错误,但从技术上讲,保留代码原样也会使您面临潜在的错误。尤其是在您继续维护代码时。
-
说实话,我从未见过 VB6 代码假定任何数组边界都是正确的。有
lbound和ubound,应该使用这些。我会重写旧代码以在任何地方使用它,然后它会无缝移植。
标签: vb.net vb6 vb6-migration