我正在将VB6项目转换为C#.Net但我在使用Scripting.Dictionary
时遇到了问题。错误消息是“Scripting.Dictionary.this [ref object]'不受语言”支持。我想获取特定键的项目。
key=astr[n];
Scripting.Dictionary m_dicValueOf;
strXPath = m_dicValueOf[astr[n]];
答案 0 :(得分:1)
您无法在C#中的索引器中使用ref
或out
参数,因此您无法使用具有ref
或out
参数的索引器。
(语言限制背后的原因当然是改变发送给索引器的密钥是没有意义的。)
使用框架中的Dictionary<K,V>
类代替。例如:
Dictionary<string, string> m_dicValueOf;
strXPath = m_dicValueOf[key];
答案 1 :(得分:1)
即使表面上的dictionary[ref key]
看起来像C#索引器,它也不兼容。
相反,要在字典中设置值,您需要使用基础set方法:
dictionary.set_Item(ref key, value);
请注意,key
的类型必须为Object
。
要获取密钥的值,您需要使用基础get方法:
var value = dictionary.get_Item(ref key);
同样,key
必须是Object
。