我很确定这个问题非常明显,但我似乎无法做到。我有一个用户定义对象的列表(不是我,但如果需要,我可以查看编辑)。我试图声明它有14个空白对象。这样当我转到listname(5).setvalues()时,它只编辑该值。相反,它编辑列表中的所有(即所有14个)或使它们为空。
以下是代码:
Dim currentProperties As New List(Of ExtendedCamObject)
'create a blank list
For i As Integer = 0 To 13
' Dim exp As New ExtendedCamObject
' currentProperties.Add(exp)
currentProperties.Add(New ExtendedCamObject)
Next
propVal = "4012"
currentProperties(8).SetValues(ExtendedCamObject.PropertyTypes.Max_Bitrate, propVal)
这使它们为空。如果我改为注释掉版本(删除for循环中的另一行),它会将它们全部设置为相同的值。这是类定义中设定值的定义:
Private m_strValue As String
Private m_PropertyType As String
Public Sub SetValues(ByVal ExtendedProperty As PropertyTypes,
ByVal strValue As String)
m_PropertyType = CType(ExtendedProperty, PropertyTypes)
m_strValue = strValue
End Sub
我没有写这个用户对象,但我注意到原始编码器没有任何'get / set'属性项。这就是我的价值观设置不正确的原因吗?
答案 0 :(得分:1)
你可以在这里使用一些代码清理:
Public Class ExtendedCamObject
Private _strValue As String
Private _PropertyType As ExtendedProperty
Public Sub SetValues(ByVal ExtendedProperty As PropertyTypes, ByVal strValue As String)
_PropertyType = ExtendedProperty
_strValue = strValue
End Sub
...
End Class