vb.net中的php $$ var等效(vb2010)

时间:2013-12-13 15:15:47

标签: php vb.net

我正在用VB.NET编写程序,我需要找到一个动态获取字符串值的变量。就像在PHP中一样:

$text = "new_var" (gotten dynamically)

$$text = 100

我想在VB.NET中这样做。

1 个答案:

答案 0 :(得分:0)

VB.NET中的直接等价物称为 reflection 。 Reflection允许您在运行时检查类型及其成员的名称。但是,它通常只应作为最后的手段使用。通常在切换语言时,直接等效不是最佳选择,因为范例是不同的。即使您确实使用了反射,它也不适用于局部变量,因此您可能需要大量重新设计代码。

更好的解决方案可能是使用Dictionary对象。 .NET中的Dictionary类是哈希表的实现,它允许您轻松存储键/值对。因此,不是将值存储在变量中,而是将其存储在Dictionary中,如下所示:

Dim d As New Dictionary(Of String, Integer)()
d("new_var") = 100

然后,不是通过字符串名称查找变量,而是可以使用它的键访问Dictionary中项目的值,如下所示:

Dim text As String = d("new_var")

(Of String, Integer)部分可能会让您感到困惑。这些参数指定键的类型和Dictionary中每个项的值。第一个参数是键的类型,第二个参数是值的类型。换句话说,您希望Dictionary中每个项目的关键字(例如“new_var”)为String,并且您希望Dictionary中每个项目的值(例如100)是Integer。如果您希望能够存储任何类型的对象,则可以始终将其声明为Dictionary(Of String, Object),但最好尽可能保留指定的类型。这样更安全。

如果必须使用反射,最好先尝试使用属性的解决方案,如果可能的话。但我怀疑你真的需要反思,听起来你想要做的事情。