我正在将VB6项目转换为c#.net,但使用Scripting.Dictionary
有问题。错误消息是" scripting.dictionary.tictionary.this [ref对象]'不受语言支持" 。我想获得特定键的项目。
key=astr[n];
Scripting.Dictionary m_dicValueOf;
strXPath = m_dicValueOf[astr[n]];
即使表面上的 dictionary[ref key]
看起来像c#索引器,也不兼容。
,要在字典中设置一个值,您需要使用基础集方法:
dictionary.set_Item(ref key, value);
请注意,key
的类型必须为Object
。
要获得一个键的值,您需要使用基础获取方法:
var value = dictionary.get_Item(ref key);
再次,key
必须是Object
。
您不能在C#中的索引中使用ref
或out
参数,因此您不能使用具有ref
或out
参数的索引器。
(语言限制背后的推理当然是,更改您发送给索引器的密钥的原因是没有意义的。)
改用框架中的Dictionary<K,V>
类。示例:
Dictionary<string, string> m_dicValueOf;
strXPath = m_dicValueOf[key];