0

我正在将 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]];
4

2 回答 2

1

您不能在 C# 的索引器中使用reforout参数,因此不能使用具有reforout参数的索引器。

(语言限制背后的原因当然是改变你发送给索引器的键是没有意义的。)

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

Dictionary<string, string> m_dicValueOf;

strXPath = m_dicValueOf[key];
于 2012-10-18T07:16:08.647 回答
1

尽管dictionary[ref key]表面上看起来像 C# 索引器,但它并不兼容。

相反,要在字典中设置一个值,您需要使用底层的 set 方法:

dictionary.set_Item(ref key, value);

请注意,类型key必须是Object.

要获取键的值,您需要使用底层的 get 方法:

var value = dictionary.get_Item(ref key);

再次,key必须Object

于 2012-10-18T07:21:18.887 回答