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

Why does my VB.NET array have extra values?

我声明我的数组

Dim A(N) As Integer

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

怎么回事?

(旨在成为规范 question/answer。)

在 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) .