数组索引是否在VB6中基于0?

时间:2012-01-09 11:35:44

标签: arrays vb6 vb6-migration

我正在审核VB6代码自动转换为C#,转换器将someArray(3)翻译为someArray[3]。但是相应于旧的代码文档,它应该选择第三个元素而不是第四个元素,就像在翻译版本中那样。

VB6中的数组索引是否基于0?或者他们从1开始?

2 个答案:

答案 0 :(得分:15)

是 - 数组(通常)为0,基于VB6

例外情况是使用显式Dim someArray(1 To 10) as Int语法,或者在代码模块顶部声明Option Base 1时。

Collections不是 - 当你遍历Collection个对象时,我很确定它们是基于1的。

答案 1 :(得分:6)

简短的回答是数组下限是你告诉它们的目的。

默认是基础0(除非被Option Base 1覆盖),但您可以将下限声明为您想要的任何值(Dim arr(-42 To 42)有效作为Dim(3))。

此外,如果某个对象返回一个数组,则其下限是该对象设置的数据。例如,Excel Range.Value引用将返回基于1的数组。