Why does my VB.NET array have extra values?

这一生的挚爱 提交于 2019-12-08 13:39:19

问题


I declare my array

Dim A(N) As Integer

When I loop from 1 To N or 0 To N-1 there's an extra value at one end or the other.

What's going on?

(Intended to be a canonical question/answer.)


回答1:


In VB.NET arrays almost always* have a lower bound of 0 and are declared mentioning their upper bound, not their length.

They did change the VB.NET syntax early on to allow you to remind yourself if needed:

Dim A(0 To N) As Integer

That 0 can't be anything else (such as a 1 or a constant zero).

You can loop through all VB.NET array indexes using

For i = LBound(A) To UBound(A)

or, more simply,

For i = 0 To N

(*) You can use the .NET Framework to create arrays with other lower bounds, but you need to refer to them as Array and thus with late binding (and probably Option Strict Off).



来源:https://stackoverflow.com/questions/29840510/why-does-my-vb-net-array-have-extra-values

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!