NullReferenceException vb 数组 [duplicate]

NullReferenceException vb Array [duplicate]

提问人:Rnd661 提问时间:11/29/2019 最后编辑:MartinRnd661 更新时间:11/29/2019 访问量:40

问:

当我尝试运行此代码时,我总是收到错误:NullReferenceException

Dim startx As Int64
Dim starty As Int64
Dim count As Int64 = 0
Dim Position() As Point
startx = 15
starty = 18
Position(count) = New Point(startx, starty)

有人可以告诉我为什么这不起作用吗?

数组 vb.net NullReferenceException

评论

0赞 Jimi 11/29/2019
您从未启动过(例如,)。另外,请参阅 Point(Int32, Int32)。将所有变量声明为 () 类型。PositionDim Position() As Point = New Point(10) {}IntegerInt32
0赞 Rnd661 11/29/2019
谢谢,我是 .net 的新手,我不知道。

答:

0赞 Berend 11/29/2019 #1

Position声明为包含 0 个项目的数组。在最后一行,您尝试设置第一项(索引为 0),但由于数组中还没有项,因此它将失败。

一种解决方案是声明具有一项的数组:

Dim Position(0) As Point

或者,在需要时调整数组大小

Dim Position() As Point    

... other code ...

ReDim Preserve Position(0)