获取以字符串命名的变量的值

Posted

技术标签:

【中文标题】获取以字符串命名的变量的值【英文标题】:Get value of variable named in a string 【发布时间】:2016-05-04 19:16:42 【问题描述】:

有没有什么方法可以获取在字符串中命名的变量的值。 例如:

Dim number As Integer = 12

Dim numberCopy As Integer = Convert("number")
' numberCopy will now equal 12
' Convert is the function to convert the string to the variable

【问题讨论】:

【参考方案1】:

只有使用 Introspection 才能完成类似的操作,并且只有当保存该值的变量是类的属性时。您的示例,其中变量仅在函数内部暂时已知,无法按您喜欢的方式工作。

要了解有关 Introspection 的更多信息,请参阅同名文档和示例。

【讨论】:

感谢您的回答。我不确定 Introspection 是否可以访问本机类型。发布问题后,我也意识到了我的计划中的缺陷。【参考方案2】:

您也可以使用字典而不是直接的属性和变量。

例如

   dim d as new dictionary
   d.value("number") = 12

那么当你需要值的时候,你就可以做

   Dim numberCopy As Integer = d.value("number")

Dictionary 的好处在于,键和值都是变体,你可以扔给它几乎任何东西,所有变量类型以及对象。

见Language Reference

【讨论】:

以上是关于获取以字符串命名的变量的值的主要内容,如果未能解决你的问题,请参考以下文章

怎么获取enum的变量名称

怎么获取enum的变量名称

使用字符串数组的值来命名变量(Matlab)

C语言getenv()函数的用法?(获取系统某个环境变量字符串名的值)

php变量

反射以及内置方法