【发布时间】:2017-05-09 15:27:07
【问题描述】:
我正在尝试在此处重新调整这一行中的一组类:
For i As Integer = 0 To RacerList(i).CompatibilityArr.Count - 1
For o As Integer = 0 To RacerList(i).CompatibilityArr.Count - 1
ReDim Preserve RacerList(i).CompatibilityArr(o).HeightCompArr(AmountOfRacers - 1)
Next
Next
Redim 代码行导致“对象引用未设置为对象的实例。”
在这行代码之上,我有:
For i As Integer = 0 To RacerList.Count - 1
ReDim Preserve RacerList(i).CompatibilityArr(AmountOfRacers - 1)
Next
哪个工作得很好,所以我很确定错误出现在 HeightCompArr 中(另外,当我写“HeightCompArr.”时,它不会在下拉菜单中暗示其中的孩子菜单)
以下是单独模块形式的所有类/结构/数组:
Public RacerList As New List(Of Racer)
<Serializable()> Public Class Racer
Public Property Name As String
Public Property CleatSize As String
Public Property SkillLevel As String
Public Property Height As String
Public Property Team As String
Public CompatibilityArr() As Compatibility
End Class
<Serializable()> Public Class Compatibility
Public HeightCompArr() As HeightComp
End Class
<Serializable()> Public Class HeightComp
Public Name As String
Public Score As Integer
End Class
我不确定这是否是我在数组中包含数组的方式或什么问题。我非常感谢任何建议。
【问题讨论】:
-
我无法实施其他问题的解决方案来解决我的问题 -- 这可能是由于实施不正确或解决方案不适用,我不确定
-
肯的回答很可能是正确的。您已设置“CompatibilityArr”的大小,但其中不包含“Compatibility”的实例;因此当您尝试访问内部的“HeightCompArr”时出现错误。您需要遍历“CompatibilityArr”的每个索引并为其分配一个实例:
CompatibilityArr(i) = New Compatibility() -
有什么理由不使用
List(Of T)?
标签: arrays vb.net class structure