我正在审核VB6代码自动转换为C#,转换器将someArray(3)
翻译为someArray[3]
。但是相应于旧的代码文档,它应该选择第三个元素而不是第四个元素,就像在翻译版本中那样。
VB6中的数组索引是否基于0?或者他们从1开始?
答案 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
的数组。