Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 用哈希表映射对象引用_Vb.net_Hashtable - Fatal编程技术网

Vb.net 用哈希表映射对象引用

Vb.net 用哈希表映射对象引用,vb.net,hashtable,Vb.net,Hashtable,我希望将引用映射到对象,而不是使用哈希表映射对象值 configMapping.Add("HEADERS_PATH", Me.headers_path) 这样,当我要检索“HEADERS\u PATH”的值时,我将能够为我分配一个值。HEADERS\u PATH 类似于C中的“&”操作符,使headers\u path成为property(带set)使headers\u path成为property(带set)我假设Me.headers\u path是一个System.String。因为Sys

我希望将引用映射到对象,而不是使用哈希表映射对象值

configMapping.Add("HEADERS_PATH", Me.headers_path)
这样,当我要检索“HEADERS\u PATH”的值时,我将能够为我分配一个值。HEADERS\u PATH


类似于C中的“&”操作符,使headers\u path成为property(带set)

使headers\u path成为property(带set)

我假设Me.headers\u path是一个System.String。因为System.String是不可变的,所以无法实现您想要的。但是您可以添加额外的间接级别来实现类似的行为

计算机科学中的所有问题都可以解决 由另一个级别的 间接的。 巴特勒·兰普森

C#中的示例(请稍后编辑到VB并删除此注释):

公共类持有者{
公共T值{get;set;}
}
...
Holder headerPath=newholder(){Value=“这是一个测试”};
添加(“HEADERS\u PATH”,headerPath);
...
((Holder)configMapping[“HEADERS_PATH”])。Value=“这是一个新测试”;
//headerPath.Value==“这是一个新测试”
我假设Me.headers\u路径是System.String。因为System.String是不可变的,所以无法实现您想要的。但是您可以添加额外的间接级别来实现类似的行为

计算机科学中的所有问题都可以解决 由另一个级别的 间接的。 巴特勒·兰普森

C#中的示例(请稍后编辑到VB并删除此注释):

公共类持有者{
公共T值{get;set;}
}
...
Holder headerPath=newholder(){Value=“这是一个测试”};
添加(“HEADERS\u PATH”,headerPath);
...
((Holder)configMapping[“HEADERS_PATH”])。Value=“这是一个新测试”;
//headerPath.Value==“这是一个新测试”

这似乎是一个字典,在.Net 2.0中,如果要更新的引用始终是字符串,则可以将其定义为字典;如果要获取任意引用,则可以将其定义为字典(不推荐)


如果需要替换字典中的值,您可以定义自己的类并提供一些帮助器方法来简化此操作。

这似乎是一个字典,在.Net 2.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-您需要避开答案中的尖括号,因此用于a<和a>。再次抱歉,我不能为您编辑您的帖子。

我不完全确定您想做什么。假设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-您需要避开答案中的尖括号,因此用于a<和a>。再次抱歉,我不能为你编辑你的帖子