我正在将类项目添加到字典中,但无法将它们找回来。我是否需要循环播放或我做错了什么?
我的课程模块“ cOgg”具有:
Public desc As String
Public alt As Single
和我的潜艇有:
sub pivo()
Dim oMat As New cOgg
Dim sosdb As New Dictionary
Set sosdb = Nothing
oMat.desc= "unodesc"
oMat.alt= 5
sosdb.Add "uno", oMat
oMat.desc= "duedesc"
oMat.alt= 10
sosdb.Add "due", oMat
Debug.Print (sosdb("uno").alt)
Debug.Print (sosdb("due").alt)
end sub
如果我运行潜艇,我得到:
10
10
代替
5
10
有任何想法吗?
问候
添加oMat
变量后,必须将其设置为cOgg
该类的新实例,以便在字典中具有该类对象的两个实例。
sub pivo()
Dim oMat As New cOgg
Dim sosdb As New Dictionary
Set sosdb = Nothing
oMat.desc= "unodesc"
oMat.alt= 5
sosdb.Add "uno", oMat
Set oMat = New cOgg
oMat.desc= "duedesc"
oMat.alt= 10
sosdb.Add "due", oMat
Debug.Print (sosdb("uno").alt)
Debug.Print (sosdb("due").alt)
end sub
如果不执行此操作,则条目中的oMat
in"Uno"
被添加为10后将被更新。然后,将与cOgg
in相同的确切实例添加oMat
到"due"
字典的条目中。因此,两者"uno"
和"due"
拥有相同的对象实例,它们是相同的并且具有alt
的10
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句