質問

HashTableを使用して、オブジェクト値ではなくオブジェクトへの参照をマップしたい

configMapping.Add("HEADERS_PATH", Me.headers_path)

その方法で<!> quot; HEADERS_PATH <!> quotの値を取得するときMe.headers_pathに値を割り当てることができます

<!> quotのようなもの; <!> amp; <!> quot; Cの演算子

役に立ちましたか?

解決

Me.headers_path はSystem.Stringであると想定しています。 System.String は不変であるため、目的を達成することはできません。ただし、同様の動作を実現するために、間接レベルを追加することができます。

  

コンピュータサイエンスのすべての問題は   別のレベルで解決される   間接。   バトラーランプソン

C#のサンプル(VBに編集して後でこのコメントを削除してください):

public class Holder<T> {
    public T Value { get; set; }
}

...

Holder<String> headerPath = new Holder<String>() { Value = "this is a test" };
configMapping.Add("HEADERS_PATH", headerPath);

...

((Holder<String>)configMapping["HEADERS_PATH"]).Value = "this is a new test";

// headerPath.Value == "this is a new test"

他のヒント

ヘッダーパスをプロパティにする(setを使用)

これは辞書のように見えます。.Net2.0では、更新する参照が常に文字列の場合は辞書として定義でき、任意の参照を取得する場合は辞書(推奨されません)です。

辞書の値を置き換える必要がある場合は、独自のクラスを定義し、これを簡単にするヘルパーメソッドを提供できます。

私はあなたが何をしたいのか完全にはわかりません。 sminkが正しいと仮定すると、ここに彼のコードのVB変換があります。編集できません。まだ十分な担当者がいないと思います。

public class Holder(Of T)
    public Value as T 
end class
...
Dim headerPath as new Holder(Of String)
headerPath.Value = "this is a test"
configMapping.Add("HEADERS_PATH", headerPath)
...
Directcast(configMapping["HEADERS_PATH"]),Holder(Of String)).Value = "this is a new test"

'headerPath.Value now equals "this is a new test"

@marcj-回答の山括弧をエスケープする必要があるため、<!> amp; lt;を使用します。 <!> lt;および<!> amp; gt; <!> gt;の場合。申し訳ありませんが、投稿を編集することはできませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top