我想用HashTable
映射对象的引用而不是对象值configMapping.Add("HEADERS_PATH", Me.headers_path)
当我要检索“HEADERS_PATH”的值时,我将能够为Me.headers_path指定一个值
类似C中的“&”运算符
答案 0 :(得分:3)
我假设 Me.headers_path 是一个System.String。因为 System.String 是不可变的,你想要的是无法实现的。但是,您可以添加额外的间接级别来实现类似的行为。
计算机科学的所有问题都可以 另一个层次的解决方案 间接。 Butler Lampson
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"
答案 1 :(得分:1)
使标题路径成为属性(带有设置)
答案 2 :(得分:1)
这似乎是一个字典,在.Net 2.0中,如果要更新的引用总是字符串,则可以定义为Dictionary;如果要获取任意引用,则可以定义为Dictionary(不推荐)。
如果你需要替换字典中的值,你可以定义自己的类,并提供一些辅助方法来使这更容易。
答案 3 :(得分:1)
我不完全确定你想做什么。假设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;。再说抱歉,我不能为你编辑你的帖子。