我在查看VB6代码到C#的自动翻译和转换器翻译someArray(3)
到someArray[3]
。但根据旧的代码文档,它应该选择第三个元素,而不是第四个元素,因为它是在翻译版本中进行的。VB6中的数组索引是否基于0?
VB6中的数组索引是否基于0?或者他们从1开始?
我在查看VB6代码到C#的自动翻译和转换器翻译someArray(3)
到someArray[3]
。但根据旧的代码文档,它应该选择第三个元素,而不是第四个元素,因为它是在翻译版本中进行的。VB6中的数组索引是否基于0?
VB6中的数组索引是否基于0?或者他们从1开始?
有 - 阵列(通常)基于在VB6
对此的例外是当显式Dim someArray(1 To 10) as Int
语法已使用时,或者当在Option Base 1
代码模块的顶部被声明0。
这是Collections
那不是 - 当你通过Collection
循环对象我很确定他们是基于1。
“除非显式类型语法已被使用”*或* Option Base 1已被声明在代码块 – 2012-01-09 11:47:59
@Matt的顶部:好点。 – 2012-01-09 11:49:26
@Matt此语句是否仅影响当前文件? – 2012-01-09 11:52:11
简短的回答是,数组的下限是你的告诉他们是。
的默认为基础0
(除非Option Base 1
覆盖),但是你可以声明下界到你想要的任何值(Dim arr(-42 To 42)
是Dim(3)
为有效)。另外,如果一个数组由某个对象返回,它的下界就是该对象设置它的任何东西。例如,Excel
Range.Value
引用将返回基于1
的阵列。
这是数组*声明*还是访问数组*元素*? – 2012-01-09 11:40:10
@Cody访问数组元素。 – 2012-01-09 11:49:32