php $$var equivalent in vb.net (vb2010)


php $$var equivalent in vb.net (vb2010)

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

$text = "new_var" (gotten dynamically)
$$text = 100

我想在VB.NET.

中执行此操作

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

更好的解决方案可能是使用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),但最好尽可能保留指定的类型。这样更安全。

如果必须使用反射,最好先尝试并提出一个使用属性的解决方案(如果可能的话)。但我怀疑你是否真的需要反思,因为听起来你正在努力做什么