每次运行此代码时,它都会向我显示此消息 “nullreferenceexception未处理 - 对象引用未设置为对象的实例。”
Public Class Point3D
Public X As Long = 0
Public Y As Long = 0
Public Z As Long = 0
End Class
Public Structure TTriangle
<VBFixedArray(2)> Public T2D() As Point2D
<VBFixedArray(2)> Public VertT3D() As Point3D
<VBFixedArray(2)> Public Real3DZ() As Long
Public Color As Color
Public IsDrown As Boolean
Public IsSelected As Boolean
Public IsIn As Boolean 'to draw or not??
Public Sub initialize()
ReDim T2D(2)
ReDim VertT3D(2)
ReDim Real3DZ(2)
VertT3D(0) = New Point3D
VertT3D(1) = New Point3D
VertT3D(2) = New Point3D
End Sub
End Structure
ReDim Preserve Triangles(zTrianglesNo)
Triangles(zTrianglesNo).VertT3D(0).X = Point1.X
Triangles(zTrianglesNo).VertT3D(0).Y = Point1.Y
Triangles(zTrianglesNo).VertT3D(0).Z = Point1.Z
我该如何解决?提前谢谢。
答案 0 :(得分:0)
ReDim Preserve Triangles(zTrianglesNo)
For i As Integer = 0 To Triangles.GetUpperBound(0) '< Added. Initialise the objects
Triangles(i) = New TTriangle '< Added. Initialise the objects
Triangles(i).initialize() '< Added. Initialise the objects
Next '< Added. Initialise the objects
Triangles(zTrianglesNo).VertT3D(0).X = Point1.X
Triangles(zTrianglesNo).VertT3D(0).Y = Point1.Y
Triangles(zTrianglesNo).VertT3D(0).Z = Point1.Z
注意:这将重置阵列中的所有三角形。如果您一次添加一个元素,请不要使用FOR ... NEXT循环,只需初始化要添加的元素。