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

refC# のインデクサーではorパラメーターを使用できないため、 oroutパラメーターを持つインデクサーは使用できません。refout

(言語の制限の背後にある理由は、もちろん、インデクサーに送信するキーを変更しても意味がないということです。)

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 に答える