从以下link开始,我在vb.net中重新创建了页面底部的示例。
在运行以下函数之前,我将文本文件中的一些数据保存到名为T.
的字典中例如:
姓名 - T0962
价值 - 5.89
Public Shared Function initialization()
'Variables initialization
Dim parts As New List(Of Intialization)
'Add parts to the list.
parts.Add(New Intialization() With {
.PartName = "T0962",
.PartId = T.Item(.PartName))
})
If parts.Exists(Function(p) p.PartName = "T0962") Then
Dim value = parts.Where(Function(p) p.PartName = variable_type).FirstOrDefault()
Msgbox(value.PartId)
End If
End Function
当我有“T0962”变量时,该程序可以正常工作。当该变量在文本文件中不存在时,它也不存在于字典中。因此,我在代码中收到错误,因为.PartId无法初始化。这是因为在那个文本文件中,有时我有这个价值,有时候我没有。
在我仔细分析后,我注意到错误发生在Property语句中, Set(value As String)更准确。
Public Property PartId() As String
Get
Return m_PartId
End Get
'here the error happens
Set(value As String)
m_PartId = value
End Set
End Property
有没有办法在Set语句中避免这种情况?例如,当出现错误时,返回一个空字符串?
如果您有什么不明白的地方,请告诉我。
答案 0 :(得分:0)
确定。试试下面。它对我有用。
Dim partName As String
partName = "T0962"
parts.Add(New Intialization() With {
.PartName = partName,
.PartId = T.FirstOrDefault(Function(f) f.Key = partName).Value
})