在vb.net中动态命名变量

时间:2009-12-16 23:16:06

标签: vb.net

我想要做的是能够获取键值对的词典,并使键成为变量的名称,值为值。 从网上搜索似乎对这是否可能非常模糊。

PHP中的等价物是:

foreach($ array as $ key => $ val) {     $$ key = $ val; }

感谢。

2 个答案:

答案 0 :(得分:1)

您必须在编译时以.Net CLR语言声明变量(不要与.Net动态运行时语言混淆)。更重要的是,如果你也知道变量的类型,通常会更好。 .Net程序员通常认为this a good thing(该链接适用于C#,但内容仍然适用)。

您想对这些变量做什么?告诉我们,我敢打赌,我们可以给你一个更好的方法来完成同样的事情。

答案 1 :(得分:0)

这是可行的,但这是一个缓慢的操作。您必须使用reflection通过字符串表示来访问变量。

如果可能的话,使用Generics将对象本身存储为键会更快。在VB.NET with a Dictionary here中有一个例子。这样做意味着在运行时不需要投射或反射。此外,它允许intellisense直接处理集合,这是泛型的另一个令人敬畏的事情。