Scripting.Dictionary.this[ref object]' 不受语言支持



我正在将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#中的索引中使用refout参数,因此您不能使用具有refout参数的索引器。

(语言限制背后的推理当然是,更改您发送给索引器的密钥的原因是没有意义的。)

改用框架中的Dictionary<K,V>类。示例:

Dictionary<string, string> m_dicValueOf;
strXPath = m_dicValueOf[key];

最新更新