我正在将 VB6 项目转换为 C# .Net,但在使用 .Net 时遇到问题Scripting.Dictionary
。错误消息是“Scripting.Dictionary.this[ref object]' is not supported by the language”。我想获取特定键的项目。
key=astr[n];
Scripting.Dictionary m_dicValueOf;
strXPath = m_dicValueOf[astr[n]];
我正在将 VB6 项目转换为 C# .Net,但在使用 .Net 时遇到问题Scripting.Dictionary
。错误消息是“Scripting.Dictionary.this[ref object]' is not supported by the language”。我想获取特定键的项目。
key=astr[n];
Scripting.Dictionary m_dicValueOf;
strXPath = m_dicValueOf[astr[n]];
您不能在 C# 的索引器中使用ref
orout
参数,因此不能使用具有ref
orout
参数的索引器。
(语言限制背后的原因当然是改变你发送给索引器的键是没有意义的。)
请改用Dictionary<K,V>
框架中的类。例子:
Dictionary<string, string> m_dicValueOf;
strXPath = m_dicValueOf[key];
尽管dictionary[ref key]
表面上看起来像 C# 索引器,但它并不兼容。
相反,要在字典中设置一个值,您需要使用底层的 set 方法:
dictionary.set_Item(ref key, value);
请注意,类型key
必须是Object
.
要获取键的值,您需要使用底层的 get 方法:
var value = dictionary.get_Item(ref key);
再次,key
必须Object
。