0

HashTable を使用して、オブジェクト値の代わりにオブジェクトへの参照をマップしたい

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

そうすれば、「HEADERS_PATH」の値を取得するときに、Me.headers_path に値を割り当てることができます。

C の " & " 演算子のようなもの

4

4 に答える 4

3

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"
于 2008-10-02T23:45:14.183 に答える
1

私はあなたが何をしたいのか完全にはわかりません。スミンクが正しいと仮定すると、ここに彼のコードの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-回答では山かっこをエスケープする必要があるため、&lt;を使用します。<および&gt;の場合 >の場合。申し訳ありませんが、投稿を編集することはできませんでした。

于 2008-11-13T19:42:18.457 に答える
1

headers_path を有効にする (設定あり)

于 2008-10-02T23:44:05.013 に答える
1

これはディクショナリのように見えます。.Net 2.0 では、更新する参照が常に文字列の場合はディクショナリとして定義でき、任意の参照を取得する場合はディクショナリ (推奨されません) として定義できます。

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

于 2008-10-02T23:49:24.020 に答える