[英]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)
,但是最好尽可能保留指定的类型。 这样更安全。
如果必须使用反射,最好先尝试使用属性解决方案,如果可能的话。 但是我怀疑您真的需要反思,因为听起来您正在尝试做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.