我想创建一个Dim Dict As New Dictionary(Of String, Object),它将我的字符串指向特定的COM对象类,即Dict.Add("NODES",Visum.Net.Nodes)我在字典中有大约20个键,每个键都指向COM对象中的不同类。
基本上它可以工作,但我担心它很重(有20个大类的实例),而且没有必要-我将整个对象传递给一个dict,而我真的只需要一种指针(ByRef)。
有没有更聪明的方法呢?
PS。我为什么要这么做?因为我放在字典里的所有对象都有共同的方法。这样我就可以调用:Dict("Nodes").ItemByKey(13),然后调用Dict("Links").ItemByKey(13),等等。
提前感谢拉法尔
发布于 2013-03-20 20:56:19
我想你是被误解了。你已经通过传递并存储了对你的对象的引用。这就是VB.NET的工作方式。(它也是处理对象的VB6,如果这是您的背景)。带有对象类型的ByVal vs ByRef参数不会创建对象的副本,它只是指示您调用的方法是否可以有效地将您传递的对象与另一个对象交换。
发布于 2013-03-20 20:49:38
看看HybridDictionary: From MSDN:在集合小的时候使用ListDictionary实现IDictionary,当集合变大时切换到哈希表。
但是,没有现成的通用版本:Is there a generic version of the HybridDictionary?
https://stackoverflow.com/questions/15523950
复制相似问题