繁体   English   中英

php $$ var等同于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) ,但是最好尽可能保留指定的类型。 这样更安全。

如果必须使用反射,最好先尝试使用属性解决方案,如果可能的话。 但是我怀疑您真的需要反思,因为听起来您正在尝试做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM