提问人:Sam 提问时间:6/23/2017 最后编辑:IgorSam 更新时间:6/23/2017 访问量:126
对象引用未设置为对象的实例 - 错误 [重复]
Object reference not set to an instance of an object - Error [duplicate]
问:
我有一个枚举,它是数组列表(它是可选的,您最多可以添加 5 次项目)
Public DiseaseTreatment() As TreatmentsetDiseaseTreatment
Public Enum TreatmentsetDiseaseTreatment
'''<remarks/>
<System.Xml.Serialization.XmlEnumAttribute("01")> _
Item01
''<remarks/>
Antibiotics
''<remarks/>
<System.Xml.Serialization.XmlEnumAttribute("02")> _
Item02
'''<remarks/>
<System.Xml.Serialization.XmlEnumAttribute("Pain Killers)")> _
PainKillers
破
Dim temptreatment As List(Of TreatmentsetDiseaseTreatment)= New List(Of TreatmentsetDiseaseTreatment)()
temptreatment.Add("Painkiller")
For i As Integer = 0 To temptreatment(i) - 1
test.TreatmentTypes(i) = temptreatment(i)
Next
当我将鼠标悬停在它上面时,它有正确的字符串,所以我不明白它是如何投掷的?tempTreatment(i)
"painkiller"
NullReferenceException
答:
4赞
Igor
6/23/2017
#1
您希望停在数组的末尾,而不是数组中 x 项的末尾。
For i As Integer = 0 To temptreatment.Count - 1
不
For i As Integer = 0 To temptreatment(i) - 1
评论
0赞
Sam
6/23/2017
“length is not a member of type list”我认为我做错了什么。我从未使用过列表和新 vb.net。我将尝试阅读更多关于列表以及如何使用枚举进行处理的信息。其他枚举直截了当,希望这个也是如此!干杯
0赞
Igor
6/23/2017
@Sam - 对不起,那不应该是.后者是数组的属性。Count
Length
0赞
Sam
6/23/2017
是的,没错,但我仍然有错误。您能否推荐一个链接来了解具有列表类型的枚举(这与我以前使用枚举所做的枚举的唯一不同,您可以进行多种处理)如果您能将我引导到一个开始阅读的好地方,我将不胜感激。
0赞
Igor
6/23/2017
@Sam - 大多数内容都是针对 c# 的,但我认为它不会太复杂,无法轻松翻译成 vb.net。您正在搜索的内容称为枚举标志。这提供了将多个状态组合成一个值的能力。关键字浏览器搜索:.net 枚举标志
0赞
Sam
6/23/2017
谢谢!但是我的 Enum 类,我不打算改变它,他们没有使用 flag..我看得很快,但非常感谢你给我一些关于我遇到的这个问题的阅读材料。
评论
TreatmentsetDiseaseTreatment
test
null
test.TreatmentTypes(i)
test