【问题标题】:Why does my VB.NET array have extra values?为什么我的 VB.NET 数组有额外的值?
【发布时间】:2015-07-02 15:30:09
【问题描述】:

我声明我的数组

Dim A(N) As Integer

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

发生了什么事?

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 严格来说,VB.Net 中的数组的下限总是为零,请参阅Array.CreateInstance 的重载。只是任何被发现编写此类代码的人都不应再被允许靠近计算机。
猜你喜欢
  • 1970-01-01
  • 2010-11-07
  • 2011-04-28
  • 1970-01-01
  • 2015-05-15
  • 1970-01-01
  • 2021-09-18
  • 2014-10-07
  • 2015-01-09
相关资源
最近更新 更多