用户列表对象不单独更新值

时间:2014-12-04 18:41:34

标签: vb.net list object

我很确定这个问题非常明显,但我似乎无法做到。我有一个用户定义对象的列表(不是我,但如果需要,我可以查看编辑)。我试图声明它有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'属性项。这就是我的价值观设置不正确的原因吗?

1 个答案:

答案 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