对象ByRef的VB字典

时间:2013-03-20 12:46:28

标签: vb.net com dictionary byref

我想创建一个Dim Dict As New Dictionary(Of String, Object),它会将我的字符串指向特定的COM对象类,即Dict.Add("NODES",Visum.Net.Nodes) 我在字典中有大约20个键,每个键指向COM对象中的不同类。

基本上它可以工作,但我担心它非常沉重(20个大类的实例的dict)并且不是必要的 - 我将整个对象传递给dict,而我真的需要一种指针({{1 }})。

有更聪明的方法吗?

PS。为什么我这样做?因为我放在字典中的所有对象都有通用的方法。通过这种方式,我可以调用ie:ByRef,然后调用Dict("Nodes").ItemByKey(13)等。

提前致谢 拉法尔

2 个答案:

答案 0 :(得分:2)

我认为你有一种误解。您已经传递和存储对象的引用。这就是VB.NET的工作方式。 (这也是VB6处理的对象,如果那是你的背景)。对象类型的ByVal vs ByRef参数不会创建对象的副本,它只是指示您调用的方法是否可以有效地将传递的对象换成另一个。

答案 1 :(得分:0)

看一下HybridDictionary:从MSDN:在集合很小的时候使用ListDictionary实现IDictionary,然后在集合变大时切换到Hashtable。

但是,没有随时可用的通用版本:Is there a generic version of the HybridDictionary?