为什么我的VB.NET数组有额外的值?

时间:2015-04-24 06:46:31

标签: arrays vb.net off-by-one

我声明我的数组

Dim A(N) As Integer

当我从1 To N0 To N-1循环时,在一端或另一端会有额外的值。

发生了什么?

(旨在成为规范性问题/答案。)

1 个答案:

答案 0 :(得分:0)

在VB.NET数组中,几乎总是*具有0的下限,并且声明提到它们的上限,而不是它们的长度。

他们确实在早期更改了VB.NET语法,以便在需要时提醒自己:

Dim A(0 To N) As Integer

0可以是其他任何内容(例如1或常数为零)。

您可以使用

遍历所有VB.NET数组索引
For i = LBound(A) To UBound(A)

或者更简单地说,

For i = 0 To N

(*)您可以使用.NET Framework创建具有其他下限的数组,但您需要将它们称为Array,因此需要使用后期绑定(可能还有Option Strict Off)。< / p>